new plugin NoServerEmoji ~ hides server emojis from autocomplete (#1787)
Co-authored-by: vee <vendicated@riseup.net>
This commit is contained in:
		
							parent
							
								
									d8b3869b81
								
							
						
					
					
						commit
						5232a85319
					
				
					 2 changed files with 54 additions and 0 deletions
				
			
		
							
								
								
									
										50
									
								
								src/plugins/noServerEmojis/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/plugins/noServerEmojis/index.ts
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| /* | ||||
|  * Vencord, a Discord client mod | ||||
|  * Copyright (c) 2023 Vendicated and contributors | ||||
|  * SPDX-License-Identifier: GPL-3.0-or-later | ||||
|  */ | ||||
| 
 | ||||
| import { definePluginSettings } from "@api/Settings"; | ||||
| import { Devs } from "@utils/constants"; | ||||
| import definePlugin, { OptionType } from "@utils/types"; | ||||
| 
 | ||||
| const settings = definePluginSettings({ | ||||
|     shownEmojis: { | ||||
|         description: "The types of emojis to show in the autocomplete menu.", | ||||
|         type: OptionType.SELECT, | ||||
|         default: "onlyUnicode", | ||||
|         options: [ | ||||
|             { label: "Only unicode emojis", value: "onlyUnicode" }, | ||||
|             { label: "Unicode emojis and server emojis from current server", value: "currentServer" }, | ||||
|             { label: "Unicode emojis and all server emojis (Discord default)", value: "all" } | ||||
|         ] | ||||
|     } | ||||
| }); | ||||
| 
 | ||||
| export default definePlugin({ | ||||
|     name: "NoServerEmojis", | ||||
|     authors: [Devs.UlyssesZhan], | ||||
|     description: "Do not show server emojis in the autocomplete menu.", | ||||
|     settings, | ||||
|     patches: [ | ||||
|         { | ||||
|             find: "}searchWithoutFetchingLatest(", | ||||
|             replacement: { | ||||
|                 match: /searchWithoutFetchingLatest.{20,300}get\((\i).{10,40}?reduce\(\((\i),(\i)\)=>\{/, | ||||
|                 replace: "$& if ($self.shouldSkip($1, $3)) return $2;" | ||||
|             } | ||||
|         } | ||||
|     ], | ||||
|     shouldSkip(guildId: string, emoji: any) { | ||||
|         if (emoji.type !== "GUILD_EMOJI") { | ||||
|             return false; | ||||
|         } | ||||
|         if (settings.store.shownEmojis === "onlyUnicode") { | ||||
|             return true; | ||||
|         } | ||||
|         if (settings.store.shownEmojis === "currentServer") { | ||||
|             return emoji.guildId !== guildId; | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
| }); | ||||
|  | @ -378,6 +378,10 @@ export const Devs = /* #__PURE__*/ Object.freeze({ | |||
|         name: "ProffDea", | ||||
|         id: 609329952180928513n | ||||
|     }, | ||||
|     UlyssesZhan: { | ||||
|         name: "UlyssesZhan", | ||||
|         id: 586808226058862623n | ||||
|     }, | ||||
|     ant0n: { | ||||
|         name: "ant0n", | ||||
|         id: 145224646868860928n | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue