Add avatarName2KeyAndName
This commit is contained in:
@@ -251,6 +251,76 @@ export class GridCommands extends CommandsBase
|
||||
});
|
||||
}
|
||||
|
||||
avatarName2KeyAndName(name: string): Promise<{avatarKey: UUID, avatarName: string}>
|
||||
{
|
||||
const check = name.split('.');
|
||||
if (check.length > 1)
|
||||
{
|
||||
name = check.join(' ');
|
||||
}
|
||||
else
|
||||
{
|
||||
name += ' resident';
|
||||
}
|
||||
name = name.toLowerCase();
|
||||
|
||||
const queryID = UUID.random();
|
||||
return new Promise<{avatarKey: UUID, avatarName: string}>((resolve, reject) =>
|
||||
{
|
||||
const aprm = new AvatarPickerRequestMessage();
|
||||
aprm.AgentData = {
|
||||
AgentID: this.agent.agentID,
|
||||
SessionID: this.circuit.sessionID,
|
||||
QueryID: queryID
|
||||
};
|
||||
aprm.Data = {
|
||||
Name: Utils.StringToBuffer(name)
|
||||
};
|
||||
|
||||
this.circuit.sendMessage(aprm, PacketFlags.Reliable);
|
||||
this.circuit.waitForMessage<AvatarPickerReplyMessage>(Message.AvatarPickerReply, 10000, (apr: AvatarPickerReplyMessage): FilterResponse =>
|
||||
{
|
||||
if (apr.AgentData.QueryID.toString() === queryID.toString())
|
||||
{
|
||||
return FilterResponse.Finish;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FilterResponse.NoMatch;
|
||||
}
|
||||
}).then((apr: AvatarPickerReplyMessage) =>
|
||||
{
|
||||
let foundKey: UUID | undefined;
|
||||
let foundName: string | undefined;
|
||||
apr.Data.forEach((dataBlock) =>
|
||||
{
|
||||
const resultName = (Utils.BufferToStringSimple(dataBlock.FirstName) + ' ' +
|
||||
Utils.BufferToStringSimple(dataBlock.LastName));
|
||||
if (resultName.toLowerCase() === name)
|
||||
{
|
||||
foundKey = dataBlock.AvatarID;
|
||||
foundName = resultName;
|
||||
}
|
||||
});
|
||||
|
||||
if (foundKey !== undefined && foundName !== undefined)
|
||||
{
|
||||
resolve({
|
||||
avatarName: foundName,
|
||||
avatarKey: foundKey
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
reject('Name not found')
|
||||
}
|
||||
}).catch((err) =>
|
||||
{
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
avatarName2Key(name: string): Promise<UUID>
|
||||
{
|
||||
const check = name.split('.');
|
||||
|
||||
46
package-lock.json
generated
46
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@caspertech/node-metaverse",
|
||||
"version": "0.5.1",
|
||||
"version": "0.5.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -20,9 +20,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/caseless": {
|
||||
"version": "0.12.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz",
|
||||
"integrity": "sha512-FhlMa34NHp9K5MY1Uz8yb+ZvuX0pnvn3jScRSNAb75KHGB8d3rEU6hqMs3Z2vjuytcMfRg6c5CHMc3wtYyD2/A==",
|
||||
"version": "0.12.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz",
|
||||
"integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/events": {
|
||||
@@ -31,15 +31,6 @@
|
||||
"integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/form-data": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz",
|
||||
"integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz",
|
||||
@@ -66,15 +57,28 @@
|
||||
"integrity": "sha512-j6Sqt38ssdMKutXBUuAcmWF8QtHW1Fwz/mz4Y+Wd9mzpBiVFirjpNQf363hG5itkG+yGaD+oiLyb50HxJ36l9Q=="
|
||||
},
|
||||
"@types/request": {
|
||||
"version": "2.47.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz",
|
||||
"integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==",
|
||||
"version": "2.48.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.3.tgz",
|
||||
"integrity": "sha512-3Wo2jNYwqgXcIz/rrq18AdOZUQB8cQ34CXZo+LUwPJNpvRAL86+Kc2wwI8mqpz9Cr1V+enIox5v+WZhy/p3h8w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/caseless": "*",
|
||||
"@types/form-data": "*",
|
||||
"@types/node": "*",
|
||||
"@types/tough-cookie": "*"
|
||||
"@types/tough-cookie": "*",
|
||||
"form-data": "^2.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"form-data": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
|
||||
"integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/tape": {
|
||||
@@ -92,9 +96,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/tough-cookie": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.3.tgz",
|
||||
"integrity": "sha512-MDQLxNFRLasqS4UlkWMSACMKeSm1x4Q3TxzUC7KQUsh6RK1ZrQ0VEyE3yzXcBu+K8ejVj4wuX32eUG02yNp+YQ==",
|
||||
"version": "2.3.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz",
|
||||
"integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/uuid": {
|
||||
|
||||
22
package.json
22
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@caspertech/node-metaverse",
|
||||
"version": "0.5.2",
|
||||
"version": "0.5.4",
|
||||
"description": "A node.js interface for Second Life.",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
@@ -23,16 +23,6 @@
|
||||
"url": "git+https://github.com/CasperTech/node-metaverse.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/micromatch": "^3.1.0",
|
||||
"@types/mocha": "^5.2.5",
|
||||
"@types/node": "^10.14.19",
|
||||
"@types/request": "^2.47.1",
|
||||
"@types/tiny-async-pool": "^1.0.0",
|
||||
"@types/uuid": "^3.4.4",
|
||||
"@types/validator": "^9.4.2",
|
||||
"@types/xml": "^1.0.2",
|
||||
"@types/xml2js": "^0.4.3",
|
||||
"@types/xmlrpc": "^1.3.5",
|
||||
"mocha": "^5.2.0",
|
||||
"source-map-support": "^0.5.9",
|
||||
"ts-node": "^7.0.1",
|
||||
@@ -43,6 +33,16 @@
|
||||
"dependencies": {
|
||||
"@caspertech/llsd": "^1.0.0",
|
||||
"@types/long": "^4.0.0",
|
||||
"@types/request": "^2.48.3",
|
||||
"@types/micromatch": "^3.1.0",
|
||||
"@types/mocha": "^5.2.5",
|
||||
"@types/node": "^10.14.19",
|
||||
"@types/tiny-async-pool": "^1.0.0",
|
||||
"@types/uuid": "^3.4.4",
|
||||
"@types/validator": "^9.4.2",
|
||||
"@types/xml": "^1.0.2",
|
||||
"@types/xml2js": "^0.4.3",
|
||||
"@types/xmlrpc": "^1.3.5",
|
||||
"ipaddr.js": "^1.8.1",
|
||||
"long": "^4.0.0",
|
||||
"micromatch": "^3.1.10",
|
||||
|
||||
Reference in New Issue
Block a user