diff --git a/dist/classes/commands/GridCommands.d.ts b/dist/classes/commands/GridCommands.d.ts
index 5d18c29..7f97ecc 100644
--- a/dist/classes/commands/GridCommands.d.ts
+++ b/dist/classes/commands/GridCommands.d.ts
@@ -1,10 +1,9 @@
-///
import { MapInfoReply } from '../../events/MapInfoReply';
-import * as Long from 'long';
import { UUID } from '../UUID';
import { CommandsBase } from './CommandsBase';
+import { RegionInfoReply } from '../../events/RegionInfoReply';
export declare class GridCommands extends CommandsBase {
- getRegionHandle(regionID: UUID): Promise;
+ getRegionByName(regionName: string): Promise;
getRegionMapInfo(gridX: number, gridY: number): Promise;
name2Key(name: string): Promise;
}
diff --git a/dist/classes/commands/GridCommands.js b/dist/classes/commands/GridCommands.js
index fbc2cab..a5e67de 100644
--- a/dist/classes/commands/GridCommands.js
+++ b/dist/classes/commands/GridCommands.js
@@ -1,7 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const MapInfoReply_1 = require("../../events/MapInfoReply");
-const RegionHandleRequest_1 = require("../messages/RegionHandleRequest");
const Message_1 = require("../../enums/Message");
const MapBlockRequest_1 = require("../messages/MapBlockRequest");
const UUID_1 = require("../UUID");
@@ -12,26 +11,59 @@ const GridItemType_1 = require("../../enums/GridItemType");
const CommandsBase_1 = require("./CommandsBase");
const AvatarPickerRequest_1 = require("../messages/AvatarPickerRequest");
const FilterResponse_1 = require("../../enums/FilterResponse");
+const MapNameRequest_1 = require("../messages/MapNameRequest");
+const GridLayerType_1 = require("../../enums/GridLayerType");
+const RegionInfoReply_1 = require("../../events/RegionInfoReply");
class GridCommands extends CommandsBase_1.CommandsBase {
- getRegionHandle(regionID) {
+ getRegionByName(regionName) {
return new Promise((resolve, reject) => {
const circuit = this.currentRegion.circuit;
- const msg = new RegionHandleRequest_1.RegionHandleRequestMessage();
- msg.RequestBlock = {
- RegionID: regionID,
+ const response = new MapInfoReply_1.MapInfoReply();
+ const msg = new MapNameRequest_1.MapNameRequestMessage();
+ msg.AgentData = {
+ AgentID: this.agent.agentID,
+ SessionID: circuit.sessionID,
+ Flags: GridLayerType_1.GridLayerType.Objects,
+ EstateID: 0,
+ Godlike: false
+ };
+ msg.NameData = {
+ Name: Utils_1.Utils.StringToBuffer(regionName)
};
circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
- circuit.waitForMessage(Message_1.Message.RegionIDAndHandleReply, 10000, (packet) => {
+ circuit.waitForMessage(Message_1.Message.MapBlockReply, 10000, (packet) => {
const filterMsg = packet.message;
- if (filterMsg.ReplyBlock.RegionID.toString() === regionID.toString()) {
+ let found = false;
+ filterMsg.Data.forEach((region) => {
+ const name = Utils_1.Utils.BufferToStringSimple(region.Name);
+ if (name.trim().toLowerCase() === regionName.trim().toLowerCase()) {
+ found = true;
+ }
+ });
+ if (found) {
return FilterResponse_1.FilterResponse.Finish;
}
- else {
- return FilterResponse_1.FilterResponse.NoMatch;
- }
+ return FilterResponse_1.FilterResponse.NoMatch;
}).then((packet) => {
const responseMsg = packet.message;
- resolve(responseMsg.ReplyBlock.RegionHandle);
+ responseMsg.Data.forEach((region) => {
+ const name = Utils_1.Utils.BufferToStringSimple(region.Name);
+ if (name.trim().toLowerCase() === regionName.trim().toLowerCase() && !(region.X === 0 && region.Y === 0)) {
+ const reply = new RegionInfoReply_1.RegionInfoReply();
+ reply.access = region.Access;
+ reply.X = region.X;
+ reply.Y = region.Y;
+ reply.name = name;
+ reply.regionFlags = region.RegionFlags;
+ reply.waterHeight = region.WaterHeight;
+ reply.agents = region.Agents;
+ reply.mapImageID = region.MapImageID;
+ reply.handle = Utils_1.Utils.RegionCoordinatesToHandle(region.X * 256, region.Y * 256);
+ resolve(reply);
+ }
+ });
+ }).catch((err) => {
+ reject(err);
});
});
}
@@ -45,7 +77,7 @@ class GridCommands extends CommandsBase_1.CommandsBase {
SessionID: circuit.sessionID,
Flags: 65536,
EstateID: 0,
- Godlike: true
+ Godlike: false
};
msg.PositionData = {
MinX: (gridX / 256),
diff --git a/dist/classes/commands/GridCommands.js.map b/dist/classes/commands/GridCommands.js.map
index 0ba90df..5e5b4ff 100644
--- a/dist/classes/commands/GridCommands.js.map
+++ b/dist/classes/commands/GridCommands.js.map
@@ -1 +1 @@
-{"version":3,"file":"GridCommands.js","sourceRoot":"","sources":["../../../lib/classes/commands/GridCommands.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"GridCommands.js","sourceRoot":"","sources":["../../../lib/classes/commands/GridCommands.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/classes/commands/RegionCommands.d.ts b/dist/classes/commands/RegionCommands.d.ts
index eef6e03..1dfbd90 100644
--- a/dist/classes/commands/RegionCommands.d.ts
+++ b/dist/classes/commands/RegionCommands.d.ts
@@ -1,3 +1,7 @@
+///
import { CommandsBase } from './CommandsBase';
+import { UUID } from '../UUID';
+import * as Long from 'long';
export declare class RegionCommands extends CommandsBase {
+ getRegionHandle(regionID: UUID): Promise;
}
diff --git a/dist/classes/commands/RegionCommands.js b/dist/classes/commands/RegionCommands.js
index d9380c6..7e4c0b5 100644
--- a/dist/classes/commands/RegionCommands.js
+++ b/dist/classes/commands/RegionCommands.js
@@ -1,7 +1,33 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const CommandsBase_1 = require("./CommandsBase");
+const PacketFlags_1 = require("../../enums/PacketFlags");
+const RegionHandleRequest_1 = require("../messages/RegionHandleRequest");
+const Message_1 = require("../../enums/Message");
+const FilterResponse_1 = require("../../enums/FilterResponse");
class RegionCommands extends CommandsBase_1.CommandsBase {
+ getRegionHandle(regionID) {
+ return new Promise((resolve, reject) => {
+ const circuit = this.currentRegion.circuit;
+ const msg = new RegionHandleRequest_1.RegionHandleRequestMessage();
+ msg.RequestBlock = {
+ RegionID: regionID,
+ };
+ circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
+ circuit.waitForMessage(Message_1.Message.RegionIDAndHandleReply, 10000, (packet) => {
+ const filterMsg = packet.message;
+ if (filterMsg.ReplyBlock.RegionID.toString() === regionID.toString()) {
+ return FilterResponse_1.FilterResponse.Finish;
+ }
+ else {
+ return FilterResponse_1.FilterResponse.NoMatch;
+ }
+ }).then((packet) => {
+ const responseMsg = packet.message;
+ resolve(responseMsg.ReplyBlock.RegionHandle);
+ });
+ });
+ }
}
exports.RegionCommands = RegionCommands;
//# sourceMappingURL=RegionCommands.js.map
\ No newline at end of file
diff --git a/dist/classes/commands/RegionCommands.js.map b/dist/classes/commands/RegionCommands.js.map
index fcd8f29..0269ff3 100644
--- a/dist/classes/commands/RegionCommands.js.map
+++ b/dist/classes/commands/RegionCommands.js.map
@@ -1 +1 @@
-{"version":3,"file":"RegionCommands.js","sourceRoot":"","sources":["../../../lib/classes/commands/RegionCommands.ts"],"names":[],"mappings":";;AAAA,iDAA4C;AAE5C,oBAA4B,SAAQ,2BAAY;CAG/C;AAHD,wCAGC"}
\ No newline at end of file
+{"version":3,"file":"RegionCommands.js","sourceRoot":"","sources":["../../../lib/classes/commands/RegionCommands.ts"],"names":[],"mappings":";;AAAA,iDAA4C;AAI5C,yDAAoD;AACpD,yEAA2E;AAC3E,iDAA4C;AAC5C,+DAA0D;AAG1D,oBAA4B,SAAQ,2BAAY;IAE5C,eAAe,CAAC,QAAc;QAE1B,MAAM,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAC3C,MAAM,GAAG,GAA+B,IAAI,gDAA0B,EAAE,CAAC;YACzE,GAAG,CAAC,YAAY,GAAG;gBACf,QAAQ,EAAE,QAAQ;aACrB,CAAC;YACF,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,yBAAW,CAAC,QAAQ,CAAC,CAAC;YAC/C,OAAO,CAAC,cAAc,CAAC,iBAAO,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,MAAc,EAAkB,EAAE;gBAE7F,MAAM,SAAS,GAAG,MAAM,CAAC,OAAwC,CAAC;gBAClE,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC,CACrE,CAAC;oBACG,MAAM,CAAC,+BAAc,CAAC,MAAM,CAAC;gBACjC,CAAC;gBACD,IAAI,CACJ,CAAC;oBACG,MAAM,CAAC,+BAAc,CAAC,OAAO,CAAC;gBAClC,CAAC;YACL,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAc,EAAE,EAAE;gBAEvB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAwC,CAAC;gBACpE,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA9BD,wCA8BC"}
\ No newline at end of file
diff --git a/dist/classes/commands/TeleportCommands.d.ts b/dist/classes/commands/TeleportCommands.d.ts
index 84bcb1b..ddd1663 100644
--- a/dist/classes/commands/TeleportCommands.d.ts
+++ b/dist/classes/commands/TeleportCommands.d.ts
@@ -1,6 +1,12 @@
+///
import { CommandsBase } from './CommandsBase';
import { LureEvent } from '../../events/LureEvent';
import { TeleportEvent } from '../../events/TeleportEvent';
+import { Vector3 } from '../Vector3';
+import * as Long from 'long';
export declare class TeleportCommands extends CommandsBase {
+ private awaitTeleportEvent();
acceptTeleport(lure: LureEvent): Promise;
+ teleportToHandle(handle: Long, position: Vector3, lookAt: Vector3): Promise;
+ teleportTo(regionName: string, position: Vector3, lookAt: Vector3): Promise;
}
diff --git a/dist/classes/commands/TeleportCommands.js b/dist/classes/commands/TeleportCommands.js
index a73b3bc..1dba801 100644
--- a/dist/classes/commands/TeleportCommands.js
+++ b/dist/classes/commands/TeleportCommands.js
@@ -6,18 +6,10 @@ const TeleportEventType_1 = require("../../enums/TeleportEventType");
const PacketFlags_1 = require("../../enums/PacketFlags");
const TeleportLureRequest_1 = require("../messages/TeleportLureRequest");
const TeleportFlags_1 = require("../../enums/TeleportFlags");
+const TeleportLocationRequest_1 = require("../messages/TeleportLocationRequest");
class TeleportCommands extends CommandsBase_1.CommandsBase {
- acceptTeleport(lure) {
+ awaitTeleportEvent() {
return new Promise((resolve, reject) => {
- const circuit = this.currentRegion.circuit;
- const tlr = new TeleportLureRequest_1.TeleportLureRequestMessage();
- tlr.Info = {
- AgentID: this.agent.agentID,
- SessionID: circuit.sessionID,
- LureID: lure.lureID,
- TeleportFlags: TeleportFlags_1.TeleportFlags.ViaLure
- };
- circuit.sendMessage(tlr, PacketFlags_1.PacketFlags.Reliable);
if (this.currentRegion.caps.eventQueueClient) {
if (this.bot.clientEvents === null) {
reject(new Error('ClientEvents is null'));
@@ -58,6 +50,60 @@ class TeleportCommands extends CommandsBase_1.CommandsBase {
}
});
}
+ else {
+ reject(new Error('EventQueue not ready'));
+ }
+ });
+ }
+ acceptTeleport(lure) {
+ return new Promise((resolve, reject) => {
+ const circuit = this.currentRegion.circuit;
+ const tlr = new TeleportLureRequest_1.TeleportLureRequestMessage();
+ tlr.Info = {
+ AgentID: this.agent.agentID,
+ SessionID: circuit.sessionID,
+ LureID: lure.lureID,
+ TeleportFlags: TeleportFlags_1.TeleportFlags.ViaLure
+ };
+ circuit.sendMessage(tlr, PacketFlags_1.PacketFlags.Reliable);
+ this.awaitTeleportEvent().then((event) => {
+ resolve(event);
+ }).catch((err) => {
+ reject(err);
+ });
+ });
+ }
+ teleportToHandle(handle, position, lookAt) {
+ return new Promise((resolve, reject) => {
+ const rtm = new TeleportLocationRequest_1.TeleportLocationRequestMessage();
+ rtm.AgentData = {
+ AgentID: this.agent.agentID,
+ SessionID: this.circuit.sessionID
+ };
+ rtm.Info = {
+ LookAt: lookAt,
+ Position: position,
+ RegionHandle: handle
+ };
+ this.circuit.sendMessage(rtm, PacketFlags_1.PacketFlags.Reliable);
+ this.awaitTeleportEvent().then((event) => {
+ resolve(event);
+ }).catch((err) => {
+ reject(err);
+ });
+ });
+ }
+ teleportTo(regionName, position, lookAt) {
+ return new Promise((resolve, reject) => {
+ this.bot.clientCommands.grid.getRegionByName(regionName).then((region) => {
+ this.teleportToHandle(region.handle, position, lookAt).then((event) => {
+ resolve(event);
+ }).catch((err) => {
+ reject(err);
+ });
+ }).catch((err) => {
+ reject(err);
+ });
});
}
}
diff --git a/dist/classes/commands/TeleportCommands.js.map b/dist/classes/commands/TeleportCommands.js.map
index b5b0679..47d1bff 100644
--- a/dist/classes/commands/TeleportCommands.js.map
+++ b/dist/classes/commands/TeleportCommands.js.map
@@ -1 +1 @@
-{"version":3,"file":"TeleportCommands.js","sourceRoot":"","sources":["../../../lib/classes/commands/TeleportCommands.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"TeleportCommands.js","sourceRoot":"","sources":["../../../lib/classes/commands/TeleportCommands.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/events/RegionInfoReply.d.ts b/dist/events/RegionInfoReply.d.ts
new file mode 100644
index 0000000..3c78c3b
--- /dev/null
+++ b/dist/events/RegionInfoReply.d.ts
@@ -0,0 +1,14 @@
+///
+import { UUID } from '../classes/UUID';
+import * as Long from 'long';
+export declare class RegionInfoReply {
+ X: number;
+ Y: number;
+ name: string;
+ access: number;
+ regionFlags: number;
+ waterHeight: number;
+ agents: number;
+ mapImageID: UUID;
+ handle: Long;
+}
diff --git a/dist/events/RegionInfoReply.js b/dist/events/RegionInfoReply.js
new file mode 100644
index 0000000..fa8753a
--- /dev/null
+++ b/dist/events/RegionInfoReply.js
@@ -0,0 +1,6 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class RegionInfoReply {
+}
+exports.RegionInfoReply = RegionInfoReply;
+//# sourceMappingURL=RegionInfoReply.js.map
\ No newline at end of file
diff --git a/dist/events/RegionInfoReply.js.map b/dist/events/RegionInfoReply.js.map
new file mode 100644
index 0000000..c31a5b4
--- /dev/null
+++ b/dist/events/RegionInfoReply.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"RegionInfoReply.js","sourceRoot":"","sources":["../../lib/events/RegionInfoReply.ts"],"names":[],"mappings":";;AAGA;CAWC;AAXD,0CAWC"}
\ No newline at end of file
diff --git a/dist/index.d.ts b/dist/index.d.ts
index 9acc8d5..86fc5f8 100644
--- a/dist/index.d.ts
+++ b/dist/index.d.ts
@@ -9,4 +9,5 @@ import { InstantMessageEvent } from './events/InstantMessageEvent';
import { ChatSourceType } from './enums/ChatSourceType';
import { BotOptionFlags } from './enums/BotOptionFlags';
import { UUID } from './classes/UUID';
-export { Bot, LoginParameters, AssetType, HTTPAssets, ClientEvents, BVH, InstantMessageEvent, InstantMessageEventFlags, ChatSourceType, BotOptionFlags, UUID };
+import { Vector3 } from './classes/Vector3';
+export { Bot, LoginParameters, AssetType, HTTPAssets, ClientEvents, BVH, InstantMessageEvent, InstantMessageEventFlags, ChatSourceType, BotOptionFlags, UUID, Vector3 };
diff --git a/dist/index.js b/dist/index.js
index 524302f..0467ed2 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -22,4 +22,6 @@ const BotOptionFlags_1 = require("./enums/BotOptionFlags");
exports.BotOptionFlags = BotOptionFlags_1.BotOptionFlags;
const UUID_1 = require("./classes/UUID");
exports.UUID = UUID_1.UUID;
+const Vector3_1 = require("./classes/Vector3");
+exports.Vector3 = Vector3_1.Vector3;
//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/dist/index.js.map b/dist/index.js.map
index 44d0caf..a4d36bb 100644
--- a/dist/index.js.map
+++ b/dist/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;AAAA,+BAA0B;AAiBtB,cAjBI,SAAG,CAiBJ;AAhBP,+DAA0D;AAiBtD,0BAjBI,iCAAe,CAiBJ;AAhBnB,yDAAoD;AAmBhD,uBAnBI,2BAAY,CAmBJ;AAlBhB,uCAAkC;AAmB9B,cAnBI,SAAG,CAmBJ;AAdP,iDAA4C;AAWxC,oBAXI,qBAAS,CAWJ;AAVb,mDAA8C;AAW1C,qBAXI,uBAAU,CAWJ;AAVd,+EAA0E;AActE,mCAdI,mDAAwB,CAcJ;AAb5B,sEAAiE;AAY7D,8BAZI,yCAAmB,CAYJ;AAXvB,2DAAsD;AAalD,yBAbI,+BAAc,CAaJ;AAZlB,2DAAsD;AAalD,yBAbI,+BAAc,CAaJ;AAZlB,yCAAoC;AAahC,eAbI,WAAI,CAaJ"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;AAAA,+BAA0B;AAmBtB,cAnBI,SAAG,CAmBJ;AAlBP,+DAA0D;AAmBtD,0BAnBI,iCAAe,CAmBJ;AAlBnB,yDAAoD;AAqBhD,uBArBI,2BAAY,CAqBJ;AApBhB,uCAAkC;AAqB9B,cArBI,SAAG,CAqBJ;AAhBP,iDAA4C;AAaxC,oBAbI,qBAAS,CAaJ;AAZb,mDAA8C;AAa1C,qBAbI,uBAAU,CAaJ;AAZd,+EAA0E;AAgBtE,mCAhBI,mDAAwB,CAgBJ;AAf5B,sEAAiE;AAc7D,8BAdI,yCAAmB,CAcJ;AAbvB,2DAAsD;AAelD,yBAfI,+BAAc,CAeJ;AAdlB,2DAAsD;AAelD,yBAfI,+BAAc,CAeJ;AAdlB,yCAAoC;AAehC,eAfI,WAAI,CAeJ;AAdR,+CAA0C;AAetC,kBAfI,iBAAO,CAeJ"}
\ No newline at end of file
diff --git a/example/testBot.js b/example/testBot.js
index 015d413..80dd771 100644
--- a/example/testBot.js
+++ b/example/testBot.js
@@ -184,6 +184,16 @@ function connect()
});
});
+ setTimeout(() => // TODO: This 5 second delay is a fudge. We need to wait for the eventqueue to start properly
+ {
+ bot.clientCommands.teleport.teleportTo('Izanagi', new nmv.Vector3([128, 128, 20]), new nmv.Vector3([0, 1.0, 0])).then(() =>
+ {
+ console.log("Teleport completed");
+ }).catch((err) => {
+ console.error(err);
+ });
+ }, 5000);
+
// When it's time to go home, call bot.close();
}).catch((error) =>
{
diff --git a/lib/classes/commands/GridCommands.ts b/lib/classes/commands/GridCommands.ts
index f0bfb97..808473e 100644
--- a/lib/classes/commands/GridCommands.ts
+++ b/lib/classes/commands/GridCommands.ts
@@ -1,7 +1,6 @@
import {MapInfoReply} from '../../events/MapInfoReply';
import {Packet} from '../Packet';
import * as Long from 'long';
-import {RegionHandleRequestMessage} from '../messages/RegionHandleRequest';
import {MapItemReplyMessage} from '../messages/MapItemReply';
import {Message} from '../../enums/Message';
import {MapBlockReplyMessage} from '../messages/MapBlockReply';
@@ -11,42 +10,78 @@ import {MapItemRequestMessage} from '../messages/MapItemRequest';
import {Utils} from '../Utils';
import {PacketFlags} from '../../enums/PacketFlags';
import {GridItemType} from '../../enums/GridItemType';
-import {RegionIDAndHandleReplyMessage} from '../messages/RegionIDAndHandleReply';
import {CommandsBase} from './CommandsBase';
import {AvatarPickerRequestMessage} from '../messages/AvatarPickerRequest';
import {AvatarPickerReplyMessage} from '../messages/AvatarPickerReply';
import {FilterResponse} from '../../enums/FilterResponse';
+import {MapNameRequestMessage} from '../messages/MapNameRequest';
+import {GridLayerType} from '../../enums/GridLayerType';
+import {RegionInfoReply} from '../../events/RegionInfoReply';
export class GridCommands extends CommandsBase
{
- getRegionHandle(regionID: UUID): Promise
+ getRegionByName(regionName: string)
{
- return new Promise((resolve, reject) =>
+ return new Promise((resolve, reject) =>
{
const circuit = this.currentRegion.circuit;
- const msg: RegionHandleRequestMessage = new RegionHandleRequestMessage();
- msg.RequestBlock = {
- RegionID: regionID,
+ const response = new MapInfoReply();
+ const msg: MapNameRequestMessage = new MapNameRequestMessage();
+ msg.AgentData = {
+ AgentID: this.agent.agentID,
+ SessionID: circuit.sessionID,
+ Flags: GridLayerType.Objects,
+ EstateID: 0,
+ Godlike: false
+ };
+ msg.NameData = {
+ Name: Utils.StringToBuffer(regionName)
};
circuit.sendMessage(msg, PacketFlags.Reliable);
- circuit.waitForMessage(Message.RegionIDAndHandleReply, 10000, (packet: Packet): FilterResponse =>
+ circuit.waitForMessage(Message.MapBlockReply, 10000, (packet: Packet): FilterResponse =>
{
- const filterMsg = packet.message as RegionIDAndHandleReplyMessage;
- if (filterMsg.ReplyBlock.RegionID.toString() === regionID.toString())
+ const filterMsg = packet.message as MapBlockReplyMessage;
+ let found = false;
+ filterMsg.Data.forEach((region) =>
+ {
+ const name = Utils.BufferToStringSimple(region.Name);
+ if (name.trim().toLowerCase() === regionName.trim().toLowerCase())
+ {
+ found = true;
+ }
+ });
+ if (found)
{
return FilterResponse.Finish;
}
- else
- {
- return FilterResponse.NoMatch;
- }
+ return FilterResponse.NoMatch;
}).then((packet: Packet) =>
{
- const responseMsg = packet.message as RegionIDAndHandleReplyMessage;
- resolve(responseMsg.ReplyBlock.RegionHandle);
+ const responseMsg = packet.message as MapBlockReplyMessage;
+ responseMsg.Data.forEach((region) =>
+ {
+ const name = Utils.BufferToStringSimple(region.Name);
+ if (name.trim().toLowerCase() === regionName.trim().toLowerCase() && !(region.X === 0 && region.Y === 0))
+ {
+ const reply = new RegionInfoReply();
+ reply.access = region.Access;
+ reply.X = region.X;
+ reply.Y = region.Y;
+ reply.name = name;
+ reply.regionFlags = region.RegionFlags;
+ reply.waterHeight = region.WaterHeight;
+ reply.agents = region.Agents;
+ reply.mapImageID = region.MapImageID;
+
+ reply.handle = Utils.RegionCoordinatesToHandle(region.X * 256, region.Y * 256);
+ resolve(reply);
+ }
+ });
+ }).catch((err) =>
+ {
+ reject(err);
});
});
}
-
getRegionMapInfo(gridX: number, gridY: number): Promise
{
return new Promise((resolve, reject) =>
@@ -59,7 +94,7 @@ export class GridCommands extends CommandsBase
SessionID: circuit.sessionID,
Flags: 65536,
EstateID: 0,
- Godlike: true
+ Godlike: false
};
msg.PositionData = {
MinX: (gridX / 256),
diff --git a/lib/classes/commands/RegionCommands.ts b/lib/classes/commands/RegionCommands.ts
index e52f35e..35a9ea3 100644
--- a/lib/classes/commands/RegionCommands.ts
+++ b/lib/classes/commands/RegionCommands.ts
@@ -1,6 +1,41 @@
import {CommandsBase} from './CommandsBase';
+import {UUID} from '../UUID';
+import {Packet} from '../Packet';
+import * as Long from 'long';
+import {PacketFlags} from '../../enums/PacketFlags';
+import {RegionHandleRequestMessage} from '../messages/RegionHandleRequest';
+import {Message} from '../../enums/Message';
+import {FilterResponse} from '../../enums/FilterResponse';
+import {RegionIDAndHandleReplyMessage} from '../messages/RegionIDAndHandleReply';
export class RegionCommands extends CommandsBase
{
-
+ getRegionHandle(regionID: UUID): Promise
+ {
+ return new Promise((resolve, reject) =>
+ {
+ const circuit = this.currentRegion.circuit;
+ const msg: RegionHandleRequestMessage = new RegionHandleRequestMessage();
+ msg.RequestBlock = {
+ RegionID: regionID,
+ };
+ circuit.sendMessage(msg, PacketFlags.Reliable);
+ circuit.waitForMessage(Message.RegionIDAndHandleReply, 10000, (packet: Packet): FilterResponse =>
+ {
+ const filterMsg = packet.message as RegionIDAndHandleReplyMessage;
+ if (filterMsg.ReplyBlock.RegionID.toString() === regionID.toString())
+ {
+ return FilterResponse.Finish;
+ }
+ else
+ {
+ return FilterResponse.NoMatch;
+ }
+ }).then((packet: Packet) =>
+ {
+ const responseMsg = packet.message as RegionIDAndHandleReplyMessage;
+ resolve(responseMsg.ReplyBlock.RegionHandle);
+ });
+ });
+ }
}
diff --git a/lib/classes/commands/TeleportCommands.ts b/lib/classes/commands/TeleportCommands.ts
index b62972c..1fedfec 100644
--- a/lib/classes/commands/TeleportCommands.ts
+++ b/lib/classes/commands/TeleportCommands.ts
@@ -6,22 +6,17 @@ import {TeleportEvent} from '../../events/TeleportEvent';
import {PacketFlags} from '../../enums/PacketFlags';
import {TeleportLureRequestMessage} from '../messages/TeleportLureRequest';
import {TeleportFlags} from '../../enums/TeleportFlags';
+import {Vector3} from '../Vector3';
+import {RegionInfoReply} from '../../events/RegionInfoReply';
+import {TeleportLocationRequestMessage} from '../messages/TeleportLocationRequest';
+import * as Long from 'long';
export class TeleportCommands extends CommandsBase
{
- acceptTeleport(lure: LureEvent): Promise
+ private awaitTeleportEvent(): Promise
{
return new Promise((resolve, reject) =>
{
- const circuit = this.currentRegion.circuit;
- const tlr = new TeleportLureRequestMessage();
- tlr.Info = {
- AgentID: this.agent.agentID,
- SessionID: circuit.sessionID,
- LureID: lure.lureID,
- TeleportFlags: TeleportFlags.ViaLure
- };
- circuit.sendMessage(tlr, PacketFlags.Reliable);
if (this.currentRegion.caps.eventQueueClient)
{
if (this.bot.clientEvents === null)
@@ -77,6 +72,78 @@ export class TeleportCommands extends CommandsBase
}
});
}
+ else
+ {
+ reject(new Error('EventQueue not ready'));
+ }
+ });
+ }
+
+ acceptTeleport(lure: LureEvent): Promise
+ {
+ return new Promise((resolve, reject) =>
+ {
+ const circuit = this.currentRegion.circuit;
+ const tlr = new TeleportLureRequestMessage();
+ tlr.Info = {
+ AgentID: this.agent.agentID,
+ SessionID: circuit.sessionID,
+ LureID: lure.lureID,
+ TeleportFlags: TeleportFlags.ViaLure
+ };
+ circuit.sendMessage(tlr, PacketFlags.Reliable);
+ this.awaitTeleportEvent().then((event: TeleportEvent) =>
+ {
+ resolve(event);
+ }).catch((err) =>
+ {
+ reject(err);
+ });
+ });
+ }
+
+ teleportToHandle(handle: Long, position: Vector3, lookAt: Vector3)
+ {
+ return new Promise((resolve, reject) =>
+ {
+ const rtm = new TeleportLocationRequestMessage();
+ rtm.AgentData = {
+ AgentID: this.agent.agentID,
+ SessionID: this.circuit.sessionID
+ };
+ rtm.Info = {
+ LookAt: lookAt,
+ Position: position,
+ RegionHandle: handle
+ };
+ this.circuit.sendMessage(rtm, PacketFlags.Reliable);
+ this.awaitTeleportEvent().then((event: TeleportEvent) =>
+ {
+ resolve(event);
+ }).catch((err) =>
+ {
+ reject(err);
+ });
+ });
+ }
+
+ teleportTo(regionName: string, position: Vector3, lookAt: Vector3)
+ {
+ return new Promise((resolve, reject) =>
+ {
+ this.bot.clientCommands.grid.getRegionByName(regionName).then((region: RegionInfoReply) =>
+ {
+ this.teleportToHandle(region.handle, position, lookAt).then((event: TeleportEvent) =>
+ {
+ resolve(event);
+ }).catch((err) =>
+ {
+ reject(err);
+ })
+ }).catch((err) =>
+ {
+ reject(err);
+ });
});
}
}
diff --git a/lib/events/RegionInfoReply.ts b/lib/events/RegionInfoReply.ts
new file mode 100644
index 0000000..3bf01c4
--- /dev/null
+++ b/lib/events/RegionInfoReply.ts
@@ -0,0 +1,15 @@
+import {UUID} from '../classes/UUID';
+import * as Long from 'long';
+
+export class RegionInfoReply
+{
+ X: number;
+ Y: number;
+ name: string;
+ access: number;
+ regionFlags: number;
+ waterHeight: number;
+ agents: number;
+ mapImageID: UUID;
+ handle: Long
+}
diff --git a/lib/index.ts b/lib/index.ts
index bcb4fc5..14027dc 100644
--- a/lib/index.ts
+++ b/lib/index.ts
@@ -13,6 +13,8 @@ import {InstantMessageEvent} from './events/InstantMessageEvent';
import {ChatSourceType} from './enums/ChatSourceType';
import {BotOptionFlags} from './enums/BotOptionFlags';
import {UUID} from './classes/UUID';
+import {Vector3} from './classes/Vector3';
+
export {
Bot,
@@ -25,5 +27,6 @@ export {
InstantMessageEventFlags,
ChatSourceType,
BotOptionFlags,
- UUID
+ UUID,
+ Vector3
};