Compare commits
	
		
			2 commits
		
	
	
		
			776e4908ba
			...
			e9d6a0fe48
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							 | 
						e9d6a0fe48 | ||
| 
							 | 
						b4c5885435 | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/blackpixel.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/city17.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 467 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/gametheory.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 450 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/garfield.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 810 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/jacksfilms.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 591 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/jjos.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 221 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/kirby.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 336 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/mania.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 328 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/maniabg.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/mariomirror.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.5 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/markiplier.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 36 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/meemay.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 199 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/memer34.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 144 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/myjesus.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 309 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/numberphile.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 515 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/paint.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 362 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/pixel.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/processor.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 619 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/retro.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 39 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/safety.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 197 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/steamupdate.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 12 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/trump.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 350 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/ugly.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 226 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/victoryroyale.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 52 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/walmart.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 210 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/whodidthis.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 68 KiB  | 
| 
						 | 
					@ -8,7 +8,6 @@ class TagsCommand extends Command {
 | 
				
			||||||
  // todo: attempt to not make this file the worst thing that human eyes have ever seen
 | 
					  // todo: attempt to not make this file the worst thing that human eyes have ever seen
 | 
				
			||||||
  async run() {
 | 
					  async run() {
 | 
				
			||||||
    this.success = false;
 | 
					    this.success = false;
 | 
				
			||||||
    if (!this.guild) return "This command only works in servers!";
 | 
					 | 
				
			||||||
    const cmd = this.type === "classic" ? (this.args[0] ?? "").toLowerCase() : this.optionsArray[0].name;
 | 
					    const cmd = this.type === "classic" ? (this.args[0] ?? "").toLowerCase() : this.optionsArray[0].name;
 | 
				
			||||||
    if (!cmd || !cmd.trim()) return "You need to provide the name of the tag you want to view!";
 | 
					    if (!cmd || !cmd.trim()) return "You need to provide the name of the tag you want to view!";
 | 
				
			||||||
    const tagName = this.type === "classic" ? this.args.slice(1)[0] : (this.optionsArray[0].options[0] ?? {}).value;
 | 
					    const tagName = this.type === "classic" ? this.args.slice(1)[0] : (this.optionsArray[0].options[0] ?? {}).value;
 | 
				
			||||||
| 
						 | 
					@ -16,7 +15,7 @@ class TagsCommand extends Command {
 | 
				
			||||||
    if (cmd === "create" || cmd === "add") {
 | 
					    if (cmd === "create" || cmd === "add") {
 | 
				
			||||||
      if (!tagName || !tagName.trim()) return "You need to provide the name of the tag you want to add!";
 | 
					      if (!tagName || !tagName.trim()) return "You need to provide the name of the tag you want to add!";
 | 
				
			||||||
      if (blacklist.includes(tagName)) return "You can't make a tag with that name!";
 | 
					      if (blacklist.includes(tagName)) return "You can't make a tag with that name!";
 | 
				
			||||||
      const getResult = await database.getTag(this.guild.id, tagName);
 | 
					      const getResult = await database.getTag(this.channel, tagName);
 | 
				
			||||||
      if (getResult) return "This tag already exists!";
 | 
					      if (getResult) return "This tag already exists!";
 | 
				
			||||||
      const result = await database.setTag(tagName, { content: this.type === "classic" ? this.args.slice(2).join(" ") : this.optionsArray[0].options[1].value, author: this.member.id }, this.guild);
 | 
					      const result = await database.setTag(tagName, { content: this.type === "classic" ? this.args.slice(2).join(" ") : this.optionsArray[0].options[1].value, author: this.member.id }, this.guild);
 | 
				
			||||||
      this.success = true;
 | 
					      this.success = true;
 | 
				
			||||||
| 
						 | 
					@ -24,25 +23,25 @@ class TagsCommand extends Command {
 | 
				
			||||||
      return `The tag \`${tagName}\` has been added!`;
 | 
					      return `The tag \`${tagName}\` has been added!`;
 | 
				
			||||||
    } else if (cmd === "delete" || cmd === "remove") {
 | 
					    } else if (cmd === "delete" || cmd === "remove") {
 | 
				
			||||||
      if (!tagName || !tagName.trim()) return "You need to provide the name of the tag you want to delete!";
 | 
					      if (!tagName || !tagName.trim()) return "You need to provide the name of the tag you want to delete!";
 | 
				
			||||||
      const getResult = await database.getTag(this.guild.id, tagName);
 | 
					      const getResult = await database.getTag(this.channel, tagName);
 | 
				
			||||||
      if (!getResult) return "This tag doesn't exist!";
 | 
					      if (!getResult) return "This tag doesn't exist!";
 | 
				
			||||||
      const owners = process.env.OWNER.split(",");
 | 
					      const owners = process.env.OWNER.split(",");
 | 
				
			||||||
      if (getResult.author !== this.author && !this.member.permissions.has("MANAGE_MESSAGES") && !owners.includes(this.author)) return "You don't own this tag!";
 | 
					      if (getResult.author !== this.author && !owners.includes(this.author)) return "You don't own this tag!";
 | 
				
			||||||
      await database.removeTag(tagName, this.guild);
 | 
					      await database.removeTag(tagName, this.guild);
 | 
				
			||||||
      this.success = true;
 | 
					      this.success = true;
 | 
				
			||||||
      return `The tag \`${tagName}\` has been deleted!`;
 | 
					      return `The tag \`${tagName}\` has been deleted!`;
 | 
				
			||||||
    } else if (cmd === "edit") {
 | 
					    } else if (cmd === "edit") {
 | 
				
			||||||
      if (!tagName || !tagName.trim()) return "You need to provide the name of the tag you want to edit!";
 | 
					      if (!tagName || !tagName.trim()) return "You need to provide the name of the tag you want to edit!";
 | 
				
			||||||
      const getResult = await database.getTag(this.guild.id, tagName);
 | 
					      const getResult = await database.getTag(this.channel, tagName);
 | 
				
			||||||
      if (!getResult) return "This tag doesn't exist!";
 | 
					      if (!getResult) return "This tag doesn't exist!";
 | 
				
			||||||
      const owners = process.env.OWNER.split(",");
 | 
					      const owners = process.env.OWNER.split(",");
 | 
				
			||||||
      if (getResult.author !== this.author && !this.member.permissions.has("MANAGE_MESSAGES") && !owners.includes(this.author)) return "You don't own this tag!";
 | 
					      if (getResult.author !== this.author && !owners.includes(this.author)) return "You don't own this tag!";
 | 
				
			||||||
      await database.editTag(tagName, { content: this.type === "classic" ? this.args.slice(2).join(" ") : this.optionsArray[0].options[1].value, author: this.member.id }, this.guild);
 | 
					      await database.editTag(tagName, { content: this.type === "classic" ? this.args.slice(2).join(" ") : this.optionsArray[0].options[1].value, author: this.member.id }, this.guild);
 | 
				
			||||||
      this.success = true;
 | 
					      this.success = true;
 | 
				
			||||||
      return `The tag \`${tagName}\` has been edited!`;
 | 
					      return `The tag \`${tagName}\` has been edited!`;
 | 
				
			||||||
    } else if (cmd === "own" || cmd === "owner") {
 | 
					    } else if (cmd === "own" || cmd === "owner") {
 | 
				
			||||||
      if (!tagName || !tagName.trim()) return "You need to provide the name of the tag you want to check the owner of!";
 | 
					      if (!tagName || !tagName.trim()) return "You need to provide the name of the tag you want to check the owner of!";
 | 
				
			||||||
      const getResult = await database.getTag(this.guild.id, tagName);
 | 
					      const getResult = await database.getTag(this.channel, tagName);
 | 
				
			||||||
      if (!getResult) return "This tag doesn't exist!";
 | 
					      if (!getResult) return "This tag doesn't exist!";
 | 
				
			||||||
      const user = this.client.users.get(getResult.author);
 | 
					      const user = this.client.users.get(getResult.author);
 | 
				
			||||||
      this.success = true;
 | 
					      this.success = true;
 | 
				
			||||||
| 
						 | 
					@ -58,39 +57,41 @@ class TagsCommand extends Command {
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    } else if (cmd === "list") {
 | 
					    } else if (cmd === "list") {
 | 
				
			||||||
      if (!this.channel.permissionsOf(this.client.user.id.toString()).has("EMBED_LINKS")) return "I don't have the `Embed Links` permission!";
 | 
					      if (!this.channel.permissionsOf(this.client.user.id.toString()).has("EMBED_LINKS")) return "I don't have the `Embed Links` permission!";
 | 
				
			||||||
      const tagList = await database.getTags(this.guild.id);
 | 
					      const tagList = await database.getTags(this.channel);
 | 
				
			||||||
      const embeds = [];
 | 
					      const embeds = [];
 | 
				
			||||||
      const groups = Object.keys(tagList).map((item, index) => {
 | 
					      const groups = Object.keys(tagList).map((item, index) => {
 | 
				
			||||||
        return index % 15 === 0 ? Object.keys(tagList).slice(index, index + 15) : null;
 | 
					        return index % 15 === 0 ? Object.keys(tagList).slice(index, index + 15) : null;
 | 
				
			||||||
      }).filter((item) => {
 | 
					      }).filter((item) => {
 | 
				
			||||||
        return item;
 | 
					        return item;
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
      for (const [i, value] of groups.entries()) {
 | 
					      let output = JSON.stringify(groups.entries());
 | 
				
			||||||
        embeds.push({
 | 
					      // for (const [i, value] of groups.entries()) {
 | 
				
			||||||
          embeds: [{
 | 
					      //   // embeds.push({
 | 
				
			||||||
            title: "Tag List",
 | 
					      //   //   embeds: [{
 | 
				
			||||||
            color: 16711680,
 | 
					      //   //     title: "Tag List",
 | 
				
			||||||
            footer: {
 | 
					      //   //     color: 16711680,
 | 
				
			||||||
              text: `Page ${i + 1} of ${groups.length}`
 | 
					      //   //     footer: {
 | 
				
			||||||
            },
 | 
					      //   //       text: `Page ${i + 1} of ${groups.length}`
 | 
				
			||||||
            description: value.join("\n"),
 | 
					      //   //     },
 | 
				
			||||||
            author: {
 | 
					      //   //     description: value.join("\n"),
 | 
				
			||||||
              name: this.author.username,
 | 
					      //   //     author: {
 | 
				
			||||||
              iconURL: this.author.avatarURL()
 | 
					      //   //       name: this.author.username,
 | 
				
			||||||
            }
 | 
					      //   //       iconURL: this.author.avatarURL()
 | 
				
			||||||
          }]
 | 
					      //   //     }
 | 
				
			||||||
        });
 | 
					      //   //   }]
 | 
				
			||||||
      }
 | 
					      //   // });
 | 
				
			||||||
 | 
					      // }
 | 
				
			||||||
      if (embeds.length === 0) return "I couldn't find any tags!";
 | 
					      if (embeds.length === 0) return "I couldn't find any tags!";
 | 
				
			||||||
      this.success = true;
 | 
					      this.success = true;
 | 
				
			||||||
      return paginator(this.client, { type: this.type, message: this.message, interaction: this.interaction, channel: this.channel, author: this.author }, embeds);
 | 
					      return output;
 | 
				
			||||||
 | 
					      // return paginator(this.client, { type: this.type, message: this.message, interaction: this.interaction, channel: this.channel, author: this.author }, embeds);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      let getResult;
 | 
					      let getResult;
 | 
				
			||||||
      if (cmd === "random") {
 | 
					      if (cmd === "random") {
 | 
				
			||||||
        const tagList = await database.getTags(this.guild.id);
 | 
					        const tagList = await database.getTags(this.channel);
 | 
				
			||||||
        getResult = tagList[random(Object.keys(tagList))];
 | 
					        getResult = tagList[random(Object.keys(tagList))];
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
        getResult = await database.getTag(this.guild.id, this.type === "classic" ? cmd : tagName);
 | 
					        getResult = await database.getTag(this.channel, this.type === "classic" ? cmd : tagName);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      if (!getResult) return "This tag doesn't exist!";
 | 
					      if (!getResult) return "This tag doesn't exist!";
 | 
				
			||||||
      this.success = true;
 | 
					      this.success = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@ using namespace vips;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
char *Explode(string type, string *outType, char *BufferData,
 | 
					char *Explode(string type, string *outType, char *BufferData,
 | 
				
			||||||
              size_t BufferLength, ArgumentMap Arguments, size_t *DataSize) {
 | 
					              size_t BufferLength, ArgumentMap Arguments, size_t *DataSize) {
 | 
				
			||||||
  bool implode = GetArgument<bool>(Arguments, "implode");
 | 
					  bool implode = GetArgumentWithFallback<bool>(Arguments, "implode", false);
 | 
				
			||||||
  string basePath = GetArgument<string>(Arguments, "basePath");
 | 
					  string basePath = GetArgument<string>(Arguments, "basePath");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  VOption *options = VImage::option();
 | 
					  VOption *options = VImage::option();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@ using namespace vips;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
char *Reddit(string type, string *outType, char *BufferData,
 | 
					char *Reddit(string type, string *outType, char *BufferData,
 | 
				
			||||||
             size_t BufferLength, ArgumentMap Arguments, size_t *DataSize) {
 | 
					             size_t BufferLength, ArgumentMap Arguments, size_t *DataSize) {
 | 
				
			||||||
  string text = GetArgument<string>(Arguments, "text");
 | 
					  string text = GetArgumentWithFallback<string>(Arguments, "text", "");
 | 
				
			||||||
  string basePath = GetArgument<string>(Arguments, "basePath");
 | 
					  string basePath = GetArgument<string>(Arguments, "basePath");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  VOption *options = VImage::option()->set("access", "sequential");
 | 
					  VOption *options = VImage::option()->set("access", "sequential");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||