transformice.js
Version:
Node.js client for Transformice with full Typescript support.
120 lines (119 loc) • 6.24 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var structures_1 = require("../structures");
var enums_1 = require("../enums");
/**
* @hidden
*/
var TribullePacketHandler = /** @class */ (function () {
function TribullePacketHandler() {
}
/* -------------------------------------------------------------------------- */
/* General */
/* -------------------------------------------------------------------------- */
TribullePacketHandler[enums_1.tribulle.connect] = function () {
this.emit("ready");
};
/* -------------------------------------------------------------------------- */
/* Whisper */
/* -------------------------------------------------------------------------- */
TribullePacketHandler[enums_1.tribulle.whisperReceive] = function (packet) {
var author = packet.readUTF();
var community = packet.readUnsignedInt();
var sentTo = packet.readUTF();
var content = packet.readUTF();
var message = new structures_1.WhisperMessage(this, new structures_1.Player(this, author), community, sentTo, content);
this.emit("whisper", message);
};
/* -------------------------------------------------------------------------- */
/* Friend */
/* -------------------------------------------------------------------------- */
TribullePacketHandler[enums_1.tribulle.friendList] = function (packet) {
var friends = [];
var soulmate = new structures_1.Friend(this).read(packet, true); // soulmate
var hasSoulmate = !(soulmate.id == 0 && soulmate.name == "");
if (hasSoulmate)
friends.push(soulmate);
var totalFriends = packet.readUnsignedShort();
while (totalFriends--) {
friends.push(new structures_1.Friend(this).read(packet, false));
}
this.emit("friendList", friends);
};
TribullePacketHandler[enums_1.tribulle.friendAdd] = function (packet) {
this.emit("friendAdd", new structures_1.Player(this, packet.readUTF()));
};
TribullePacketHandler[enums_1.tribulle.friendRemove] = function (packet) {
this.emit("friendRemove", new structures_1.Player(this, packet.readUTF()));
};
TribullePacketHandler[enums_1.tribulle.friendConnect] = function (packet) {
this.emit("friendConnect", packet.readUTF());
};
TribullePacketHandler[enums_1.tribulle.friendDisconnect] = function (packet) {
this.emit("friendDisconnect", packet.readUTF());
};
TribullePacketHandler[enums_1.tribulle.friendUpdate] = function (packet) {
this.emit("friendUpdate", new structures_1.Friend(this).read(packet, false));
};
/* -------------------------------------------------------------------------- */
/* Chat Channel */
/* -------------------------------------------------------------------------- */
TribullePacketHandler[enums_1.tribulle.channelWho] = function (packet) {
var fingerprint = packet.readUnsignedInt();
packet.readUnsignedByte();
var playerCount = packet.readUnsignedShort();
var players = [];
for (var i = 0; i < playerCount; i++) {
players.push(new structures_1.Player(this, packet.readUTF()));
}
this.emit("channelWho", this.whoList[fingerprint], players, fingerprint);
};
TribullePacketHandler[enums_1.tribulle.channelLeave] = function (packet) {
var channelName = packet.readUTF();
var index = this.channels.findIndex(function (c) { return c === channelName; });
if (index >= 0)
this.channels.splice(index, 1);
this.emit("channelLeave", channelName);
};
TribullePacketHandler[enums_1.tribulle.channelJoin] = function (packet) {
var channelName = packet.readUTF();
this.channels.push(channelName);
this.emit("channelJoin", channelName);
};
TribullePacketHandler[enums_1.tribulle.channelMessage] = function (packet) {
var author = new structures_1.Player(this, packet.readUTF());
var community = packet.readUnsignedInt();
var channelName = packet.readUTF();
var content = packet.readUTF();
var message = new structures_1.ChannelMessage(this, author, content, community, new structures_1.Channel(this, channelName));
this.emit("channelMessage", message);
};
/* -------------------------------------------------------------------------- */
/* Tribe */
/* -------------------------------------------------------------------------- */
TribullePacketHandler[enums_1.tribulle.tribeMessage] = function (packet) {
var author = new structures_1.Player(this, packet.readUTF());
var message = new structures_1.Message(this, author, packet.readUTF());
this.emit("tribeMessage", message);
};
TribullePacketHandler[enums_1.tribulle.tribeMemberUpdate] = function (packet) {
this.emit("tribeMemberUpdate", new structures_1.Member(this).read(packet));
};
TribullePacketHandler[enums_1.tribulle.tribeMemberConnect] = function (packet) {
this.emit("tribeMemberConnect", packet.readUTF());
};
TribullePacketHandler[enums_1.tribulle.tribeMemberDisconnect] = function (packet) {
this.emit("tribeMemberDisconnect", packet.readUTF());
};
TribullePacketHandler[enums_1.tribulle.tribeInitialReceive] = function (packet) {
var result = packet.readByte();
if (result == 17) {
this.emit("tribe", null);
}
};
TribullePacketHandler[enums_1.tribulle.tribeReceive] = function (packet) {
this.emit("tribe", new structures_1.Tribe(this).read(packet));
};
return TribullePacketHandler;
}());
exports.default = TribullePacketHandler;