hacked together thread support because im impatient
This commit is contained in:
		
							parent
							
								
									336a9abedd
								
							
						
					
					
						commit
						2ee2b46bbf
					
				
					 4 changed files with 52 additions and 30 deletions
				
			
		
							
								
								
									
										25
									
								
								src/index.js
									
										
									
									
									
								
							
							
						
						
									
										25
									
								
								src/index.js
									
										
									
									
									
								
							| 
						 | 
					@ -1,3 +1,13 @@
 | 
				
			||||||
 | 
					// ensure gateway/rest v9
 | 
				
			||||||
 | 
					const Constants = require("eris/lib/Constants");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const fixedConstants = Constants;
 | 
				
			||||||
 | 
					fixedConstants.GATEWAY_VERSION = 9;
 | 
				
			||||||
 | 
					fixedConstants.REST_VERSION = 9;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const constantsPath = require.resolve("eris/lib/Constants");
 | 
				
			||||||
 | 
					require.cache[constantsPath].exports = fixedConstants;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const Eris = require("eris");
 | 
					const Eris = require("eris");
 | 
				
			||||||
const logger = require("./lib/logger.js");
 | 
					const logger = require("./lib/logger.js");
 | 
				
			||||||
const fs = require("fs");
 | 
					const fs = require("fs");
 | 
				
			||||||
| 
						 | 
					@ -55,9 +65,22 @@ for (const file of fs.readdirSync(resolve(__dirname, "modules"))) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bot.on("messageCreate", async (msg) => {
 | 
					bot.on("messageCreate", async (msg) => {
 | 
				
			||||||
  // fix DMs cause of gateway v8 changes
 | 
					  // fix DMs cause of gateway v8 changes
 | 
				
			||||||
  if (!(msg.channel instanceof Eris.Channel) && msg.author.id != bot.user.id) {
 | 
					  if (
 | 
				
			||||||
 | 
					    !(msg.channel instanceof Eris.Channel) &&
 | 
				
			||||||
 | 
					    msg.author.id != bot.user.id &&
 | 
				
			||||||
 | 
					    !msg.guildID
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
    const newChannel = await bot.getDMChannel(msg.author.id);
 | 
					    const newChannel = await bot.getDMChannel(msg.author.id);
 | 
				
			||||||
    if (msg.channel.id == newChannel.id) msg.channel = newChannel;
 | 
					    if (msg.channel.id == newChannel.id) msg.channel = newChannel;
 | 
				
			||||||
 | 
					  } else if (
 | 
				
			||||||
 | 
					    msg.guildID &&
 | 
				
			||||||
 | 
					    !bot.guilds.get(msg.guildID).channels.has(msg.channel.id)
 | 
				
			||||||
 | 
					  ) {
 | 
				
			||||||
 | 
					    const threads = await bot.requestHandler
 | 
				
			||||||
 | 
					      .request("GET", `/guilds/${msg.guildID}/threads/active`, true)
 | 
				
			||||||
 | 
					      .then((x) => x.threads);
 | 
				
			||||||
 | 
					    const thread = threads.filter((x) => x.id == msg.channel.id)[0];
 | 
				
			||||||
 | 
					    if (thread) msg.channel = new Eris.TextChannel(thread, bot);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // if we still have no dm channel (threads cause this too)
 | 
					  // if we still have no dm channel (threads cause this too)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,7 +38,7 @@ async function runCommand(msg, cmd, line, args) {
 | 
				
			||||||
    return "No\n\nSent from my iPhone.";
 | 
					    return "No\n\nSent from my iPhone.";
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (cmdObj.guildOnly && !msg.channel.guild) {
 | 
					  if (cmdObj.guildOnly && !msg.guildID) {
 | 
				
			||||||
    return "This command can only be used in guilds.";
 | 
					    return "This command can only be used in guilds.";
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,11 +10,12 @@ function pastelize(id) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function getTopColor(msg, id, fallback = 0x7289da) {
 | 
					function getTopColor(msg, id, fallback = 0x7289da) {
 | 
				
			||||||
  if (!msg.channel.guild) return fallback;
 | 
					  if (!msg.guildID) return fallback;
 | 
				
			||||||
 | 
					  const guild = msg.channel.guild || hf.bot.guilds.get(msg.guildID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const roles = msg.channel.guild.members
 | 
					  const roles = guild.members
 | 
				
			||||||
    .get(id)
 | 
					    .get(id)
 | 
				
			||||||
    .roles.map((role) => msg.channel.guild.roles.get(role))
 | 
					    .roles.map((role) => guild.roles.get(role))
 | 
				
			||||||
    .filter((role) => role.color);
 | 
					    .filter((role) => role.color);
 | 
				
			||||||
  roles.sort((a, b) => b.position - a.position);
 | 
					  roles.sort((a, b) => b.position - a.position);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -282,8 +283,9 @@ async function lookupUser(msg, str, filter) {
 | 
				
			||||||
  let users;
 | 
					  let users;
 | 
				
			||||||
  if (filter) {
 | 
					  if (filter) {
 | 
				
			||||||
    users = hf.bot.users.filter(filter).values();
 | 
					    users = hf.bot.users.filter(filter).values();
 | 
				
			||||||
  } else if (msg.channel.guild) {
 | 
					  } else if (msg.guildID) {
 | 
				
			||||||
    users = msg.channel.guild.members.values();
 | 
					    const guild = msg.channel.guild || hf.bot.guilds.get(msg.guildID);
 | 
				
			||||||
 | 
					    users = guild.members.values();
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    users = hf.bot.users.values();
 | 
					    users = hf.bot.users.values();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -69,15 +69,12 @@ avatar.helpText = "Get avatar of a user";
 | 
				
			||||||
avatar.usage = "<user>";
 | 
					avatar.usage = "<user>";
 | 
				
			||||||
avatar.callback = async function (msg, line) {
 | 
					avatar.callback = async function (msg, line) {
 | 
				
			||||||
  if (line == "--server" || line == "--guild") {
 | 
					  if (line == "--server" || line == "--guild") {
 | 
				
			||||||
    if (!msg.channel.guild) {
 | 
					    if (!msg.guildID) {
 | 
				
			||||||
      return "`--server/--guild` can only be used within guilds.";
 | 
					      return "`--server/--guild` can only be used within guilds.";
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      const url = `${ICON_BASE}${msg.channel.guild.id}/${
 | 
					      const guild = msg.channel.guild || hf.bot.guilds.get(msg.guildID);
 | 
				
			||||||
        msg.channel.guild.icon
 | 
					      const url = `${ICON_BASE}${guild.id}/${guild.icon}.${
 | 
				
			||||||
      }.${
 | 
					        guild.icon.startsWith("a_") ? "gif?size=1024&_=.gif" : "png?size=1024"
 | 
				
			||||||
        msg.channel.guild.icon.startsWith("a_")
 | 
					 | 
				
			||||||
          ? "gif?size=1024&_=.gif"
 | 
					 | 
				
			||||||
          : "png?size=1024"
 | 
					 | 
				
			||||||
      }`;
 | 
					      }`;
 | 
				
			||||||
      return {
 | 
					      return {
 | 
				
			||||||
        embeds: [
 | 
					        embeds: [
 | 
				
			||||||
| 
						 | 
					@ -101,11 +98,12 @@ avatar.callback = async function (msg, line) {
 | 
				
			||||||
      return user;
 | 
					      return user;
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      let member = user;
 | 
					      let member = user;
 | 
				
			||||||
      if (msg.channel.guild) {
 | 
					      const guild = msg.channel.guild || hf.bot.guilds.get(msg.guildID);
 | 
				
			||||||
        if (msg.channel.guild.members.has(user.id)) {
 | 
					      if (guild) {
 | 
				
			||||||
          member = msg.channel.guild.members.get(user.id);
 | 
					        if (guild.members.has(user.id)) {
 | 
				
			||||||
 | 
					          member = guild.members.get(user.id);
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          const fetched = await msg.channel.guild.fetchMembers({
 | 
					          const fetched = await guild.fetchMembers({
 | 
				
			||||||
            userIDs: [user.id],
 | 
					            userIDs: [user.id],
 | 
				
			||||||
          });
 | 
					          });
 | 
				
			||||||
          member = fetched[0];
 | 
					          member = fetched[0];
 | 
				
			||||||
| 
						 | 
					@ -113,8 +111,8 @@ avatar.callback = async function (msg, line) {
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      const avatar = member.avatar || member.user.avatar;
 | 
					      const avatar = member.avatar || member.user.avatar;
 | 
				
			||||||
      const url =
 | 
					      const url =
 | 
				
			||||||
        msg.channel.guild && member.avatar
 | 
					        guild && member.avatar
 | 
				
			||||||
          ? `https://cdn.discordapp.com/guilds/${msg.channel.guild.id}/users/${
 | 
					          ? `https://cdn.discordapp.com/guilds/${guild.id}/users/${
 | 
				
			||||||
              member.id
 | 
					              member.id
 | 
				
			||||||
            }/avatars/${member.avatar}.${
 | 
					            }/avatars/${member.avatar}.${
 | 
				
			||||||
              member.avatar.startsWith("a_")
 | 
					              member.avatar.startsWith("a_")
 | 
				
			||||||
| 
						 | 
					@ -137,9 +135,10 @@ avatar.callback = async function (msg, line) {
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
 | 
					    const guild = msg.channel.guild || hf.bot.guilds.get(msg.guildID);
 | 
				
			||||||
    const avatar = msg.member.avatar || msg.author.avatar;
 | 
					    const avatar = msg.member.avatar || msg.author.avatar;
 | 
				
			||||||
    const url = msg.member.avatar
 | 
					    const url = msg.member.avatar
 | 
				
			||||||
      ? `https://cdn.discordapp.com/guilds/${msg.channel.guild.id}/users/${
 | 
					      ? `https://cdn.discordapp.com/guilds/${guild.id}/users/${
 | 
				
			||||||
          msg.member.id
 | 
					          msg.member.id
 | 
				
			||||||
        }/avatars/${msg.member.avatar}.${
 | 
					        }/avatars/${msg.member.avatar}.${
 | 
				
			||||||
          msg.member.avatar.startsWith("a_")
 | 
					          msg.member.avatar.startsWith("a_")
 | 
				
			||||||
| 
						 | 
					@ -172,15 +171,12 @@ banner.callback = async function (msg, line) {
 | 
				
			||||||
  let id = msg.author.id;
 | 
					  let id = msg.author.id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (line == "--server" || line == "--guild") {
 | 
					  if (line == "--server" || line == "--guild") {
 | 
				
			||||||
    if (!msg.channel.guild) {
 | 
					    if (!msg.guildID) {
 | 
				
			||||||
      return "`--server/--guild` can only be used within guilds.";
 | 
					      return "`--server/--guild` can only be used within guilds.";
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      const url = `${BANNER_BASE}${msg.channel.guild.id}/${
 | 
					      const guild = msg.channel.guild || hf.bot.guilds.get(msg.guildID);
 | 
				
			||||||
        msg.channel.guild.banner
 | 
					      const url = `${BANNER_BASE}${guild.id}/${guild.banner}.${
 | 
				
			||||||
      }.${
 | 
					        guild.banner.startsWith("a_") ? "gif?size=1024&_=.gif" : "png?size=1024"
 | 
				
			||||||
        msg.channel.guild.banner.startsWith("a_")
 | 
					 | 
				
			||||||
          ? "gif?size=1024&_=.gif"
 | 
					 | 
				
			||||||
          : "png?size=1024"
 | 
					 | 
				
			||||||
      }`;
 | 
					      }`;
 | 
				
			||||||
      return {
 | 
					      return {
 | 
				
			||||||
        embeds: [
 | 
					        embeds: [
 | 
				
			||||||
| 
						 | 
					@ -455,8 +451,9 @@ flagdump.callback = async function (msg, line) {
 | 
				
			||||||
  const num = parseInt(line);
 | 
					  const num = parseInt(line);
 | 
				
			||||||
  if (/<@!?([0-9]*)>/.test(line)) {
 | 
					  if (/<@!?([0-9]*)>/.test(line)) {
 | 
				
			||||||
    const id = line.match(/<@?!([0-9]*)>/)[1];
 | 
					    const id = line.match(/<@?!([0-9]*)>/)[1];
 | 
				
			||||||
    let user = await msg.channel.guild.fetchMembers({userIDs: [id]});
 | 
					    const guild = msg.channel.guild || hf.bot.guilds.get(msg.guildID);
 | 
				
			||||||
    if (!user[0]) {
 | 
					    let user = guild && (await guild.fetchMembers({userIDs: [id]}));
 | 
				
			||||||
 | 
					    if (!user || !user[0]) {
 | 
				
			||||||
      user = hf.bot.users.get(id);
 | 
					      user = hf.bot.users.get(id);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      user = user[0].user;
 | 
					      user = user[0].user;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue