Testing nickname support

This commit is contained in:
abalabahaha
2016-04-29 19:25:06 -07:00
parent 68e1549361
commit b47540d6eb
6 changed files with 89 additions and 50 deletions

View File

@@ -750,6 +750,17 @@ var Client = (function (_EventEmitter) {
return this.internal.undeafenMember(user, server).then(dataCallback(callback), errorCallback(callback)); return this.internal.undeafenMember(user, server).then(dataCallback(callback), errorCallback(callback));
}; };
// def setNickname
Client.prototype.setNickname = function setNickname(server, nick, user) {
var callback = arguments.length <= 3 || arguments[3] === undefined ? function () /*err, {}*/{} : arguments[3];
if (!user) {
user = this.user;
}
return this.internal.setNickname(server, nick, user).then(dataCallback(callback), errorCallback(callback));
};
// def createRole // def createRole
Client.prototype.createRole = function createRole(server) { Client.prototype.createRole = function createRole(server) {

View File

@@ -258,15 +258,9 @@ var InternalClient = (function () {
_this2.setup(); _this2.setup();
// Check whether the email is set (if not, only a token has been used for login) // Check whether the email is set (if not, only a token has been used for login)
if (_this2.email) { _this2.loginWithToken(_this2.token, _this2.email, _this2.password)["catch"](function () {
_this2.login(_this2.email, _this2.password)["catch"](function () { return _this2.disconnected(true);
return _this2.disconnected(true); });
});
} else {
_this2.loginWithToken(_this2.token)["catch"](function () {
return _this2.disconnected(true);
});
}
}, this.autoReconnectInterval); }, this.autoReconnectInterval);
} }
@@ -1030,6 +1024,15 @@ var InternalClient = (function () {
return this.apiRequest("patch", _Constants.Endpoints.SERVER_MEMBERS(server.id) + "/" + user.id, true, { deaf: false }); return this.apiRequest("patch", _Constants.Endpoints.SERVER_MEMBERS(server.id) + "/" + user.id, true, { deaf: false });
}; };
// def setNickname
InternalClient.prototype.setNickname = function setNickname(server, nick, user) {
nick = nick || "";
user = this.resolver.resolveUser(user);
server = this.resolver.resolveServer(server);
return this.apiRequest("patch", _Constants.Endpoints.SERVER_MEMBERS(server.id) + "/" + user.id, true, { nick: nick });
};
// def createRole // def createRole
InternalClient.prototype.createRole = function createRole(server, data) { InternalClient.prototype.createRole = function createRole(server, data) {
@@ -1381,24 +1384,22 @@ var InternalClient = (function () {
this.idleStatus = this.idleStatus || null; //undefined this.idleStatus = this.idleStatus || null; //undefined
} }
this.game = game === null ? null : game || this.game; this.game = game === null ? null : !game ? this.game || null : {
name: game
};
var packet = { var packet = {
op: 3, op: 3,
d: { d: {
idle_since: this.idleStatus, idle_since: this.idleStatus,
game: { game: this.game
name: this.game
}
} }
}; };
this.sendWS(packet); this.sendWS(packet);
this.user.status = this.idleStatus ? "idle" : "online"; this.user.status = this.idleStatus ? "idle" : "online";
this.user.game = { this.user.game = this.game;
name: this.game
};
return Promise.resolve(); return Promise.resolve();
}; };
@@ -2028,10 +2029,11 @@ var InternalClient = (function () {
return server.roles.get("id", pid); return server.roles.get("id", pid);
}), }),
mute: false, mute: false,
self_mute: false, selfMute: false,
deaf: false, deaf: false,
self_deaf: false, selfDeaf: false,
joinedAt: Date.parse(data.joined_at) joinedAt: Date.parse(data.joined_at),
nick: data.nick
}; };
server.memberCount++; server.memberCount++;
@@ -2090,9 +2092,10 @@ var InternalClient = (function () {
return server.roles.get("id", pid); return server.roles.get("id", pid);
}); });
server.memberMap[data.user.id].mute = data.mute; server.memberMap[data.user.id].mute = data.mute;
server.memberMap[data.user.id].self_mute = data.self_mute; server.memberMap[data.user.id].selfMute = data.self_mute;
server.memberMap[data.user.id].deaf = data.deaf; server.memberMap[data.user.id].deaf = data.deaf;
server.memberMap[data.user.id].self_deaf = data.self_deaf; server.memberMap[data.user.id].selfDeaf = data.self_deaf;
server.memberMap[data.user.id].nick = data.nick;
client.emit("serverMemberUpdated", server, user); client.emit("serverMemberUpdated", server, user);
} else { } else {
client.emit("warn", "server member removed but user doesn't exist in cache"); client.emit("warn", "server member removed but user doesn't exist in cache");
@@ -2257,10 +2260,11 @@ var InternalClient = (function () {
return server.roles.get("id", pid); return server.roles.get("id", pid);
}), }),
mute: user.mute, mute: user.mute,
self_mute: false, selfMute: false,
deaf: user.deaf, deaf: user.deaf,
self_deaf: false, selfDeaf: false,
joinedAt: Date.parse(user.joined_at) joinedAt: Date.parse(user.joined_at),
nick: user.nick
}; };
server.members.add(self.users.add(new _StructuresUser2["default"](user.user, client))); server.members.add(self.users.add(new _StructuresUser2["default"](user.user, client)));
} }

View File

@@ -95,10 +95,11 @@ var Server = (function (_Equality) {
return self.roles.get("id", pid); return self.roles.get("id", pid);
}), }),
mute: dataUser.mute, mute: dataUser.mute,
self_mute: dataUser.self_mute, selfMute: dataUser.self_mute,
deaf: dataUser.deaf, deaf: dataUser.deaf,
self_deaf: dataUser.self_deaf, selfDeaf: dataUser.self_deaf,
joinedAt: Date.parse(dataUser.joined_at) joinedAt: Date.parse(dataUser.joined_at),
nick: dataUser.nick
}; };
_this.members.add(client.internal.users.add(new _User2["default"](dataUser.user, client))); _this.members.add(client.internal.users.add(new _User2["default"](dataUser.user, client)));
}); });
@@ -355,6 +356,10 @@ var Server = (function (_Equality) {
return this.client.createChannel.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments)); return this.client.createChannel.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
}; };
Server.prototype.setNickname = function setNickname() {
return this.client.setNickname.apply(this.client, _UtilArgumentRegulariser.reg(this, arguments));
};
Server.prototype.membersWithRole = function membersWithRole(role) { Server.prototype.membersWithRole = function membersWithRole(role) {
return this.members.filter(function (m) { return this.members.filter(function (m) {
return m.hasRole(role); return m.hasRole(role);

View File

@@ -810,6 +810,15 @@ export default class Client extends EventEmitter {
.then(dataCallback(callback), errorCallback(callback)); .then(dataCallback(callback), errorCallback(callback));
} }
// def setNickname
setNickname(server, nick, user, callback = (/*err, {}*/) => { }) {
if(!user) {
user = this.user;
}
return this.internal.setNickname(server, nick, user)
.then(dataCallback(callback), errorCallback(callback));
}
// def createRole // def createRole
createRole(server, data = null, callback = (/*err, role*/) => { }) { createRole(server, data = null, callback = (/*err, role*/) => { }) {
if (typeof data === "function") { if (typeof data === "function") {

View File

@@ -179,11 +179,7 @@ export default class InternalClient {
this.setup(); this.setup();
// Check whether the email is set (if not, only a token has been used for login) // Check whether the email is set (if not, only a token has been used for login)
if (this.email) { this.loginWithToken(this.token, this.email, this.password).catch(() => this.disconnected(true));
this.login(this.email, this.password).catch(() => this.disconnected(true));
} else {
this.loginWithToken(this.token).catch(() => this.disconnected(true));
}
}, this.autoReconnectInterval); }, this.autoReconnectInterval);
} }
@@ -867,6 +863,14 @@ export default class InternalClient {
return this.apiRequest("patch", `${Endpoints.SERVER_MEMBERS(server.id)}/${user.id}`, true, { deaf: false }); return this.apiRequest("patch", `${Endpoints.SERVER_MEMBERS(server.id)}/${user.id}`, true, { deaf: false });
} }
// def setNickname
setNickname(server, nick, user) {
nick = nick || "";
user = this.resolver.resolveUser(user);
server = this.resolver.resolveServer(server);
return this.apiRequest("patch", `${Endpoints.SERVER_MEMBERS(server.id)}/${user.id}`, true, { nick: nick });
}
// def createRole // def createRole
createRole(server, data) { createRole(server, data) {
server = this.resolver.resolveServer(server); server = this.resolver.resolveServer(server);
@@ -1161,24 +1165,22 @@ export default class InternalClient {
this.idleStatus = this.idleStatus || null; //undefined this.idleStatus = this.idleStatus || null; //undefined
} }
this.game = game === null ? null : game || this.game; this.game = game === null ? null : !game ? this.game || null : {
name: game
};
var packet = { var packet = {
op: 3, op: 3,
d: { d: {
idle_since: this.idleStatus, idle_since: this.idleStatus,
game: { game: this.game
name: this.game
}
} }
}; };
this.sendWS(packet); this.sendWS(packet);
this.user.status = this.idleStatus ? "idle" : "online"; this.user.status = this.idleStatus ? "idle" : "online";
this.user.game = { this.user.game = this.game;
name: this.game
};
return Promise.resolve(); return Promise.resolve();
@@ -1733,10 +1735,11 @@ export default class InternalClient {
server.memberMap[data.user.id] = { server.memberMap[data.user.id] = {
roles: data.roles.map(pid => server.roles.get("id", pid)), roles: data.roles.map(pid => server.roles.get("id", pid)),
mute: false, mute: false,
self_mute: false, selfMute: false,
deaf: false, deaf: false,
self_deaf: false, selfDeaf: false,
joinedAt: Date.parse(data.joined_at) joinedAt: Date.parse(data.joined_at),
nick: data.nick
}; };
server.memberCount++; server.memberCount++;
@@ -1785,9 +1788,10 @@ export default class InternalClient {
server.memberMap[data.user.id] = server.memberMap[data.user.id] || {}; server.memberMap[data.user.id] = server.memberMap[data.user.id] || {};
server.memberMap[data.user.id].roles = data.roles.map(pid => server.roles.get("id", pid)); server.memberMap[data.user.id].roles = data.roles.map(pid => server.roles.get("id", pid));
server.memberMap[data.user.id].mute = data.mute; server.memberMap[data.user.id].mute = data.mute;
server.memberMap[data.user.id].self_mute = data.self_mute; server.memberMap[data.user.id].selfMute = data.self_mute;
server.memberMap[data.user.id].deaf = data.deaf; server.memberMap[data.user.id].deaf = data.deaf;
server.memberMap[data.user.id].self_deaf = data.self_deaf; server.memberMap[data.user.id].selfDeaf = data.self_deaf;
server.memberMap[data.user.id].nick = data.nick;
client.emit("serverMemberUpdated", server, user); client.emit("serverMemberUpdated", server, user);
} else { } else {
client.emit("warn", "server member removed but user doesn't exist in cache"); client.emit("warn", "server member removed but user doesn't exist in cache");
@@ -1940,10 +1944,11 @@ export default class InternalClient {
server.memberMap[user.user.id] = { server.memberMap[user.user.id] = {
roles: user.roles.map(pid => server.roles.get("id", pid)), roles: user.roles.map(pid => server.roles.get("id", pid)),
mute: user.mute, mute: user.mute,
self_mute: false, selfMute: false,
deaf: user.deaf, deaf: user.deaf,
self_deaf: false, selfDeaf: false,
joinedAt: Date.parse(user.joined_at) joinedAt: Date.parse(user.joined_at),
nick: user.nick
}; };
server.members.add(self.users.add(new User(user.user, client))); server.members.add(self.users.add(new User(user.user, client)));
} }

View File

@@ -58,10 +58,11 @@ export default class Server extends Equality {
this.memberMap[dataUser.user.id] = { this.memberMap[dataUser.user.id] = {
roles: dataUser.roles.map((pid) => self.roles.get("id", pid)), roles: dataUser.roles.map((pid) => self.roles.get("id", pid)),
mute: dataUser.mute, mute: dataUser.mute,
self_mute: dataUser.self_mute, selfMute: dataUser.self_mute,
deaf: dataUser.deaf, deaf: dataUser.deaf,
self_deaf: dataUser.self_deaf, selfDeaf: dataUser.self_deaf,
joinedAt: Date.parse(dataUser.joined_at) joinedAt: Date.parse(dataUser.joined_at),
nick: dataUser.nick
}; };
this.members.add(client.internal.users.add(new User(dataUser.user, client))); this.members.add(client.internal.users.add(new User(dataUser.user, client)));
}); });
@@ -293,6 +294,10 @@ export default class Server extends Equality {
return this.client.createChannel.apply(this.client, reg(this, arguments)); return this.client.createChannel.apply(this.client, reg(this, arguments));
} }
setNickname() {
return this.client.setNickname.apply(this.client, reg(this, arguments));
}
membersWithRole(role) { membersWithRole(role) {
return this.members.filter(m => m.hasRole(role)); return this.members.filter(m => m.hasRole(role));
} }