mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-11 09:03:29 +01:00
Added Permission evaluation for channels and EvaluatedPermissions class.
This commit is contained in:
@@ -6,6 +6,7 @@ const Constants = require('../util/Constants');
|
||||
const RESTManager = require('./rest/RestManager');
|
||||
const ClientDataStore = require('../structures/DataStore/ClientDataStore');
|
||||
const ClientManager = require('./ClientManager');
|
||||
const ClientDataResolver = require('./ClientDataResolver');
|
||||
const WebSocketManager = require('./websocket/WebSocketManager');
|
||||
|
||||
class Client extends EventEmitter{
|
||||
@@ -17,6 +18,7 @@ class Client extends EventEmitter{
|
||||
this.store = new ClientDataStore(this);
|
||||
this.manager = new ClientManager(this);
|
||||
this.ws = new WebSocketManager(this);
|
||||
this.resolver = new ClientDataResolver(this);
|
||||
}
|
||||
|
||||
login(email, password) {
|
||||
|
||||
59
src/client/ClientDataResolver.js
Normal file
59
src/client/ClientDataResolver.js
Normal file
@@ -0,0 +1,59 @@
|
||||
'use strict';
|
||||
|
||||
const Structure = name => require(`../structures/${name}`);
|
||||
|
||||
const User = Structure('User');
|
||||
const Message = Structure('Message');
|
||||
const Guild = Structure('Guild');
|
||||
const ServerChannel = Structure('ServerChannel');
|
||||
const TextChannel = Structure('TextChannel');
|
||||
const VoiceChannel = Structure('VoiceChannel');
|
||||
const GuildMember = Structure('GuildMember');
|
||||
|
||||
function $string(obj) {
|
||||
return (typeof obj === 'string' || obj instanceof String);
|
||||
}
|
||||
|
||||
class ClientDataResolver {
|
||||
|
||||
constructor(client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
ResolveUser(user) {
|
||||
if (user instanceof User) {
|
||||
return user;
|
||||
}else if ($string(user)) {
|
||||
return this.client.store.get('users', user);
|
||||
}else if (user instanceof Message) {
|
||||
return user.author;
|
||||
}else if (user instanceof Guild) {
|
||||
return user.owner;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
ResolveGuild(guild) {
|
||||
if (guild instanceof Guild) {
|
||||
return guild;
|
||||
}
|
||||
}
|
||||
|
||||
ResolveGuildMember(guild, user) {
|
||||
if (user instanceof GuildMember) {
|
||||
return user;
|
||||
}
|
||||
|
||||
guild = this.ResolveGuild(guild);
|
||||
user = this.ResolveUser(user);
|
||||
|
||||
if (!guild || !user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return guild.store.get('members', user.id);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ClientDataResolver;
|
||||
Reference in New Issue
Block a user