mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 00:23:30 +01:00
sendTyping, setStatus, and channel position
This commit is contained in:
@@ -29,11 +29,19 @@ class Client extends EventEmitter {
|
||||
get privateChannels(){
|
||||
return this.internal.private_channels;
|
||||
}
|
||||
|
||||
|
||||
get voiceConnection(){
|
||||
return this.internal.voiceConnection;
|
||||
}
|
||||
|
||||
get readyTime(){
|
||||
return this.internal.readyTime;
|
||||
}
|
||||
|
||||
get uptime(){
|
||||
return this.internal.uptime;
|
||||
}
|
||||
|
||||
// def login
|
||||
login(email, password, cb = function (err, token) { }) {
|
||||
var self = this;
|
||||
@@ -497,6 +505,50 @@ class Client extends EventEmitter {
|
||||
});
|
||||
}
|
||||
|
||||
//def setStatus
|
||||
setStatus(idleStatus, gameID, callback=function(err){}){
|
||||
var self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
if (typeof gameID === "function") {
|
||||
// gameID is the callback
|
||||
callback = gameID;
|
||||
}
|
||||
else if (typeof idleStatus === "function") {
|
||||
// idleStatus is the callback
|
||||
callback = idleStatus;
|
||||
}
|
||||
|
||||
self.internal.setStatus(idleStatus, gameID)
|
||||
.then(() => {
|
||||
callback();
|
||||
resolve();
|
||||
})
|
||||
.catch(e => {
|
||||
callback(e);
|
||||
reject(e);
|
||||
});
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
//def sendTyping
|
||||
sendTyping(channel, callback=function(err){}){
|
||||
var self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
self.internal.sendTyping(channel)
|
||||
.then(() => {
|
||||
callback();
|
||||
resolve();
|
||||
})
|
||||
.catch(e => {
|
||||
callback(e);
|
||||
reject(e);
|
||||
});
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
// def setTopic
|
||||
setTopic(channel, topic, callback=function(err){}){
|
||||
var self = this;
|
||||
|
||||
@@ -42,6 +42,11 @@ class InternalClient {
|
||||
this.private_channels = new Cache();
|
||||
this.voiceConnection = null;
|
||||
this.resolver = new Resolver(this);
|
||||
this.readyTime = null;
|
||||
}
|
||||
|
||||
get uptime() {
|
||||
return (this.readyTime ? Date.now() - this.readyTime : null);
|
||||
}
|
||||
|
||||
//def leaveVoiceChannel
|
||||
@@ -699,6 +704,7 @@ class InternalClient {
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
// def deleteRole
|
||||
deleteRole(role) {
|
||||
var self = this;
|
||||
@@ -910,6 +916,57 @@ class InternalClient {
|
||||
});
|
||||
}
|
||||
|
||||
//def setStatus
|
||||
setStatus(idleStatus, gameID) {
|
||||
var self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
var packet = {
|
||||
op: 3,
|
||||
d: {
|
||||
idle_since: null,
|
||||
game_id: null
|
||||
}
|
||||
};
|
||||
|
||||
if (idleStatus) {
|
||||
packet.d.idle_since = Date.now();
|
||||
}
|
||||
if (typeof gameID === "number") {
|
||||
packet.d.game_id = gameID;
|
||||
}
|
||||
|
||||
self.sendWS(packet);
|
||||
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
//def sendTyping
|
||||
sendTyping(channel) {
|
||||
var self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
self.resolver.resolveChannel(channel).then(next).catch(reject);
|
||||
|
||||
function next(channel) {
|
||||
|
||||
request
|
||||
.post(Endpoints.CHANNEL(channel.id) + "/typing")
|
||||
.set("authorization", self.token)
|
||||
.end((err, res) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
//def setTopic
|
||||
setTopic(chann, topic = "") {
|
||||
var self = this;
|
||||
@@ -924,7 +981,7 @@ class InternalClient {
|
||||
.set("authorization", self.token)
|
||||
.send({
|
||||
name: channel.name,
|
||||
position: 0,
|
||||
position: channel.position,
|
||||
topic: topic
|
||||
})
|
||||
.end((err, res) => {
|
||||
@@ -940,6 +997,7 @@ class InternalClient {
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
//def setChannelName
|
||||
setChannelName(chann, name = "discordjs_is_the_best") {
|
||||
var self = this;
|
||||
@@ -954,7 +1012,7 @@ class InternalClient {
|
||||
.set("authorization", self.token)
|
||||
.send({
|
||||
name: name,
|
||||
position: 0,
|
||||
position: channel.position,
|
||||
topic: channel.topic
|
||||
})
|
||||
.end((err, res) => {
|
||||
@@ -970,6 +1028,7 @@ class InternalClient {
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
//def setChannelNameAndTopic
|
||||
setChannelNameAndTopic(chann, name = "discordjs_is_the_best", topic = "") {
|
||||
var self = this;
|
||||
@@ -984,7 +1043,7 @@ class InternalClient {
|
||||
.set("authorization", self.token)
|
||||
.send({
|
||||
name: name,
|
||||
position: 0,
|
||||
position: channel.position,
|
||||
topic: topic
|
||||
})
|
||||
.end((err, res) => {
|
||||
@@ -1046,6 +1105,10 @@ class InternalClient {
|
||||
client.emit("disconnected");
|
||||
}
|
||||
|
||||
this.websocket.onerror = (e) => {
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
this.websocket.onmessage = (e) => {
|
||||
|
||||
if (e.type === "Binary") {
|
||||
@@ -1082,6 +1145,8 @@ class InternalClient {
|
||||
client.emit("ready");
|
||||
client.emit("debug", `ready packet took ${Date.now() - startTime}ms to process`);
|
||||
client.emit("debug", `ready with ${self.servers.length} servers, ${self.channels.length} channels and ${self.users.length} users cached.`);
|
||||
|
||||
self.readyTime = Date.now();
|
||||
break;
|
||||
|
||||
case PacketType.MESSAGE_CREATE:
|
||||
|
||||
@@ -10,6 +10,7 @@ class ServerChannel extends Channel{
|
||||
super(data, client);
|
||||
this.name = data.name;
|
||||
this.type = data.type;
|
||||
this.position = data.position;
|
||||
this.permissionOverwrites = new Cache();
|
||||
this.server = server;
|
||||
data.permission_overwrites.forEach((permission) => {
|
||||
|
||||
Reference in New Issue
Block a user