{"id":24766077,"url":"https://github.com/mrquackduck/imageemojis","last_synced_at":"2026-04-30T17:32:06.875Z","repository":{"id":273519013,"uuid":"919689037","full_name":"MrQuackDuck/ImageEmojis","owner":"MrQuackDuck","description":"Minecraft Paper plugin (1.19.4+) that brings custom emojis to the chat! Custom messages are supported. ","archived":false,"fork":false,"pushed_at":"2025-11-09T10:50:23.000Z","size":125,"stargazers_count":8,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-09T12:21:33.902Z","etag":null,"topics":["emojis","java","minecraft","papermc","papermc-plugin"],"latest_commit_sha":null,"homepage":"https://modrinth.com/plugin/image-emojis/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrQuackDuck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-20T20:31:50.000Z","updated_at":"2025-11-09T10:50:27.000Z","dependencies_parsed_at":"2025-07-09T22:16:36.993Z","dependency_job_id":"2f46714e-b8e0-45cc-af20-37576b41c838","html_url":"https://github.com/MrQuackDuck/ImageEmojis","commit_stats":null,"previous_names":["mrquackduck/imageemojis"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/MrQuackDuck/ImageEmojis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrQuackDuck%2FImageEmojis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrQuackDuck%2FImageEmojis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrQuackDuck%2FImageEmojis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrQuackDuck%2FImageEmojis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrQuackDuck","download_url":"https://codeload.github.com/MrQuackDuck/ImageEmojis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrQuackDuck%2FImageEmojis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32472396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emojis","java","minecraft","papermc","papermc-plugin"],"created_at":"2025-01-28T23:18:38.227Z","updated_at":"2026-04-30T17:32:06.854Z","avatar_url":"https://github.com/MrQuackDuck.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003e\u003cimg width=80 src=\"https://github.com/MrQuackDuck/ImageEmojis/blob/master/src/main/resources/pack.png\" /\u003e \u003cdiv\u003eImageEmojis\u003c/div\u003e\u003c/h1\u003e\n\n\u003cp\u003e\n  \u003ca href=\"https://www.java.com/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Java-blue.svg?logo=data:image/svg%2bxml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTguODUwOTggMTguNTZDOC44NTA5OCAxOC41NiA3LjkzMzk4IDE5LjA5NCA5LjUwMzk4IDE5LjI3NEMxMS40MDYgMTkuNDkyIDEyLjM3OCAxOS40NjEgMTQuNDczIDE5LjA2M0MxNC40NzMgMTkuMDYzIDE1LjAyNSAxOS40MDkgMTUuNzk0IDE5LjcwOUMxMS4wOTUgMjEuNzIyIDUuMTYwOTggMTkuNTkxIDguODUwOTggMTguNTZaTTguMjc1OTggMTUuOTMzQzguMjc1OTggMTUuOTMzIDcuMjQ3OTggMTYuNjk0IDguODE3OTggMTYuODU3QzEwLjg1IDE3LjA2NiAxMi40NTQgMTcuMDg0IDE1LjIzMSAxNi41NDlDMTUuMjMxIDE2LjU0OSAxNS42MTUgMTYuOTM4IDE2LjIxOCAxNy4xNTFDMTAuNTM5IDE4LjgxMiA0LjIxMDk4IDE3LjI4MSA4LjI3NTk4IDE1LjkzM1pNMTMuMTE2IDExLjQ3NUMxNC4yNzQgMTIuODA4IDEyLjgxMiAxNC4wMDggMTIuODEyIDE0LjAwOEMxMi44MTIgMTQuMDA4IDE1Ljc1MSAxMi40OSAxNC40MDEgMTAuNTlDMTMuMTQgOC44MTggMTIuMTczIDcuOTM4IDE3LjQwOCA0LjkwMkMxNy40MDggNC45MDEgOS4xOTE5OCA2Ljk1MyAxMy4xMTYgMTEuNDc1Wk0xOS4zMyAyMC41MDRDMTkuMzMgMjAuNTA0IDIwLjAwOSAyMS4wNjMgMTguNTgzIDIxLjQ5NUMxNS44NzEgMjIuMzE3IDcuMjk0OTggMjIuNTY0IDQuOTEzOTggMjEuNTI4QzQuMDU3OTggMjEuMTU1IDUuNjYzOTggMjAuNjM4IDYuMTY3OTggMjAuNTNDNi42OTQ5OCAyMC40MTYgNi45OTU5OCAyMC40MzcgNi45OTU5OCAyMC40MzdDNi4wNDI5OCAxOS43NjYgMC44Mzk5NzcgMjEuNzU0IDQuMzUyOTggMjIuMzI0QzEzLjkzMyAyMy44NzcgMjEuODE1IDIxLjYyNCAxOS4zMyAyMC41MDRaTTkuMjkxOTggMTMuMjFDOS4yOTE5OCAxMy4yMSA0LjkyOTk4IDE0LjI0NiA3Ljc0Nzk4IDE0LjYyMkM4LjkzNjk4IDE0Ljc4MSAxMS4zMDkgMTQuNzQ1IDEzLjUxOCAxNC41NkMxNS4zMjQgMTQuNDA4IDE3LjEzNiAxNC4wODMgMTcuMTM2IDE0LjA4M0MxNy4xMzYgMTQuMDgzIDE2LjQ5OSAxNC4zNTUgMTYuMDM4IDE0LjY3QzExLjYwOSAxNS44MzUgMy4wNTE5OCAxNS4yOTMgNS41MTU5OCAxNC4xMDJDNy41OTc5OCAxMy4wOTYgOS4yOTE5OCAxMy4yMSA5LjI5MTk4IDEzLjIxWk0xNy4xMTYgMTcuNTg0QzIxLjYxOSAxNS4yNDQgMTkuNTM3IDEyLjk5NSAxOC4wODQgMTMuMjk5QzE3LjcyOSAxMy4zNzMgMTcuNTY5IDEzLjQzNyAxNy41NjkgMTMuNDM3QzE3LjU2OSAxMy40MzcgMTcuNzAxIDEzLjIzIDE3Ljk1NCAxMy4xNEMyMC44MjkgMTIuMTI5IDIzLjA0IDE2LjEyMSAxNy4wMjYgMTcuNzAyQzE3LjAyNiAxNy43MDEgMTcuMDk2IDE3LjY0IDE3LjExNiAxNy41ODRaTTE0LjQwMSAwQzE0LjQwMSAwIDE2Ljg5NSAyLjQ5NCAxMi4wMzYgNi4zM0M4LjEzOTk4IDkuNDA3IDExLjE0OCAxMS4xNjIgMTIuMDM1IDEzLjE2NkM5Ljc2MDk4IDExLjExMyA4LjA5MTk4IDkuMzA4IDkuMjEwOTggNy42MjdDMTAuODU1IDUuMTU4IDE1LjQwOCAzLjk2MiAxNC40MDEgMFpNOS43MzM5OCAyMy45MjRDMTQuMDU2IDI0LjIwMSAyMC42OTMgMjMuNzcxIDIwLjg1IDIxLjcyNkMyMC44NSAyMS43MjYgMjAuNTQ4IDIyLjUwMSAxNy4yNzggMjMuMTE3QzEzLjU5IDIzLjgxMSA5LjAzODk4IDIzLjczIDYuMzQwOTggMjMuMjg1QzYuMzQwOTggMjMuMjg0IDYuODkzOTggMjMuNzQyIDkuNzMzOTggMjMuOTI0WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==\u0026color=F07427\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://hangar.papermc.io/MrQuackDuck/ImageEmojis\"\u003e\u003cimg src=\"https://img.shields.io/badge/PaperMC-blue.svg?logo=data:image/svg%2bxml;base64,PHN2ZyB3aWR0aD0iNDYwIiBoZWlnaHQ9IjQ2MCIgdmlld0JveD0iMCAwIDQ2MCA0NjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik00NTEuNDMxIDE5LjQxMjdMOC45MDM4MyAxOTUuNjU1QzUuMTQ5MjggMTk3LjE1IDQuNjI3OTYgMjAyLjI1MSA4LjAwMjM5IDIwNC40NzVMMTIzLjU2OSAyODAuNjM5QzEyNS4zMjggMjgxLjc5OCAxMjcuNjIzIDI4MS43MzIgMTI5LjMxMSAyODAuNDczQzE1Ni43NTQgMjYwLjAxIDM3NS43ODEgOTYuOTgxNiAzNzIuNSAxMDguOTI4QzM2OS4yMDggMTIwLjkxNSAxOTUuMTg0IDI5OC43MjMgMTc0LjUwMiAzMTkuODI0QzE3My4yMzggMzIxLjExNSAxNzIuODEyIDMyMi45NCAxNzMuMzE1IDMyNC42NzVMMTk2LjYyMSA0MDUuMDAyQzE5Ny42ODYgNDA4LjY3MiAyMDIuMzA3IDQwOS44NCAyMDQuOTg3IDQwNy4xMTZMMjQyLjcyMyAzNjguNzYyQzI0NC4zNSAzNjcuMTA5IDI0Ni45MDEgMzY2Ljc5MSAyNDguODgzIDM2Ny45OTZMMzY3LjkwNyA0NDAuMjk4QzM3MC44NyA0NDIuMDk5IDM3NC43MjEgNDQwLjQwOSAzNzUuNDA1IDQzNy4wMUw0NTguMTgzIDI1LjA0MjlDNDU4Ljk2NSAyMS4xNTE0IDQ1NS4xMTkgMTcuOTQ0MSA0NTEuNDMxIDE5LjQxMjdaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K\u0026color=0090FF\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://modrinth.com/plugin/image-emojis/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Modrinth-blue.svg?logo=modrinth\u0026color=15C132\u0026logoColor=FFFFFF\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.curseforge.com/minecraft/bukkit-plugins/image-emojis\"\u003e\u003cimg src=\"https://img.shields.io/badge/Curse_Forge-blue.svg?logo=curseforge\u0026color=2A2A2A\u0026logoColor=F16436\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n**ImageEmojis** is a **Paper (1.19.4+)** plugin that allows you to add your **custom emojis** on your server.\u003cbr\u003e\n\n\u003e [!IMPORTANT]\n\u003e The max resolution of an emoji **256x256px**! Emojis should be stored in the **'.png'** format.\\\n\u003e Images **shouldn't contain any special symbols** like: `(`, `)`, `[`, `]`, `\u0026`, `^` etc. \n\n### 👀 Screenshots\n\u003cimg height=300 src=\"https://github.com/user-attachments/assets/df778e85-07ec-4daa-aec3-fa097e7973a7\" /\u003e\n\u003cimg height=300 src=\"https://github.com/user-attachments/assets/73008596-6bdc-4cdf-8d7a-3075358df7f7\" /\u003e\n\u003cimg width=620 src=\"https://github.com/user-attachments/assets/f9edf474-8836-40c5-8bc2-cd19150704ac\" /\u003e\n\u003cimg width=620 src=\"https://github.com/user-attachments/assets/351a9dcb-2b0a-47e6-ad2b-ee8e2af52cbe\" /\u003e\u003cbr/\u003e\n\u003cimg width=620 src=\"https://github.com/user-attachments/assets/66b510f0-7b09-46c0-ad28-98ea3e2511d7\" /\u003e\n\u003cimg width=620 src=\"https://github.com/user-attachments/assets/a9138765-f220-4194-a447-b52f9c0f961c\" /\u003e\n\u003cimg width=620 src=\"https://github.com/user-attachments/assets/f78ec57a-aaa7-46bd-a312-db1058e156cf\" /\u003e\n\u003cimg width=620 src=\"https://github.com/user-attachments/assets/7b0d5d8d-85ed-453f-99db-bbdc8dda5e41\" /\u003e\n\n### 💻 Commands\n\n- `/emojis list` — opens a book with all currently added emojis.\n- `/emojis update` — fetches the latest version of the emojis resource pack from the server. Intended to be used in case when the admin updated emojis and reloaded the plugin while you were playing. _(Alternatively, you can just rejoin and not use this command)_.\n- `/emojis reload` — reloads the plugin. Generates the resource pack based on the `./plugins/ImageEmojis/emojis/` directory.\n\nAliases: `/ie`, `/imageemojis`.\n\n### 🔞 Permissions\n- `imageemojis.admin` _(for **operators** by default)_ — Allows to use `/emojis reload`.\n- `imageemojis.use` _(**true** by default)_ — Allows to use emojis as well as the `/emojis` command.\n- `imageemojis.update` _(**true** by default)_ — Allows to use `/emojis update`.\n- `imageemojis.list` _(**true** by default)_ — Allows to use `/emojis list`.\n\n### 🌠 Key features\n\n- **Automated resource pack generation** — the resource pack is generated every time the plugin starts or gets reloaded. The only thing you need to do is to provide your server IP in the configuration and open the TCP port on the server _(**5000** by default)_.\n- **Chat suggestions** - emoji suggestions when a player types a message in chat. You can choose from four suggestion modes:\n  - `NONE` - disable chat suggestions.\n  - `TEMPLATES` _(set by default)_ - suggest templates of emojis when typing (e.g., **\\:clueless:**).\n  - `ACTUAL` - suggest actual emojis (their UTF-8 symbols) when typing. (e.g., \u003cimg width=16 src=\"https://github.com/MrQuackDuck/ImageEmojis/blob/master/src/main/resources/pack.png\" /\u003e).\n  - `BOTH` - A combination of \"TEMPLATES\" and \"ACTUAL\" modes.\n- Ability to **merge** emojis with your **server resource pack**: you can set the `mergeWithServerResourcePack` field to `true` in the `config.yml` and put your resource pack into the `../ImageEmojis/` directory with the `serverResourcePack.zip` filename _(the filename can be configured as well)_.\n- **Sign replacement** — you can enable/disable replacement of emoji templates on signs.\n- **Anvil replacement** — you can enable/disable replacement of emoji templates when renaming an item in the anvil.\n- **Command replacement** — you can enable/disable replacement of emoji templates when sending commands. By default, the plugin automatically preprocesses all commands sent by players and changes emoji templates to actual emojis.\n- **Discord integration** - if you have the **[DiscordSRV](https://modrinth.com/plugin/discordsrv)** plugin installed and set up, emoji templates will be translated into appropriate UTF-8 emoji symbols, and UTF-8 symbols will be preprocessed to be displayed correctly in Discord as emojis. This will work with emojis that have the same name both in the game and on the Discord server.\n\n### 📄 Default config\n\u003e [!CAUTION]\n\u003e **Don't forget** to put your **public IP** into the `serverIp` field.\u003cbr\u003e\n\u003e Also, you should **open the TCP port** on your machine for the plugin to work. \u003ci\u003ePort **5000** by default\u003c/i\u003e.\u003cbr/\u003e\n\u003e **Otherwise, nothing will work.**\n```yaml\n# Your server public IP goes here.\nserverIp: \"127.0.0.1\"\n\n# The port the resource pack will be hosted on. When the plugin launches, an HTTP server starts on that port.\n# It should be opened on the machine so that players can download the resource pack.\nwebServerPort: 5000\n\n# Resource pack enforcement policies:\n# NONE - The resource pack won't be loaded on join. This option can fit servers where players prefer to download the resource pack manually.\n# OPTIONAL - Players can decline the resource pack from loading on join.\n# REQUIRED - Players are forced to play with the resource pack.\nenforcementPolicy: \"OPTIONAL\"\n\n# Replace emojis in anvils? (e.g., when renaming items)\nreplaceInAnvils: true\n# Replace emojis on signs? (e.g., after editing them)\nreplaceOnSigns: true\n# Replace emojis when sending a command? (e.g., in the \"/msg\" or \"/say\" commands)\nreplaceInCommands: true\n\n# What will happen if a player doesn't have the \"imageemojis.use\" permission?:\n# ERASE_EMOJIS - Erase all emojis from payload and proceed.\n# CANCEL_EVENT - Cancel the event completely (e.g., prevent the message from being sent).\nnoPermAction:\n  inChat: \"ERASE_EMOJIS\"\n  inAnvils: \"ERASE_EMOJIS\"\n  onSigns: \"ERASE_EMOJIS\"\n  inCommands: \"ERASE_EMOJIS\"\n\n# Whether a player will see the \"Not enough permissions\" message.\n# Will be shown only for events with the \"CANCEL_EVENT\" action selected.\nnoPermMessage: false\n\n# Whether an emoji name should appear when you put your cursor over the emoji symbol in the chat.\n# This feature MAY NOT WORK if you use Spigot-native chat formatters such as \"VaultChatFormatter\" or \"LPC\" due to their incompatibility with Paper Components.\n# If you are looking for a simple chat formatter that doesn't break messages, you may consider using mine: https://github.com/MrQuackDuck/PlainChatFormatter\nemojiHoverEnabled: true\nemojiHoverColor: \"#AAAAAA\"\n\n# Chat suggestions modes (when typing a message in the chat and hitting TAB on the keyboard):\n# NONE - No suggestions.\n# TEMPLATES - Suggest templates (e.g., \":sob:\").\n# ACTUAL - Suggest actual emoji (e.g., \"😭\").\n# BOTH - A combination of \"TEMPLATES\" and \"ACTUAL\" modes.\nsuggestionMode: \"TEMPLATES\"\n\n# Emoji template format (e.g., you may replace colons or remove them completely).\ntemplateFormat: \":\u003cemoji\u003e:\"\n\n# Should the plugin merge the \"emojis.zip\" resource pack with the server resource pack?\n# If \"true\", you should put your resource pack in the \"/plugins/ImageEmojis/\" directory.\n# The output will be generated within the \"emojis.zip\" archive.\nmergeWithServerResourcePack: false\n# Name of the resource pack to merge \"emojis.zip\" with.\nmergeServerResourcePackName: \"serverResourcePack.zip\"\n\n# When you use over ~500 emojis, you may see some emojis overlap each other (due to the hashing function being limited to a certain range).\n# If you plan to use many emojis on your server, you may set this value to \"true\".\n# IMPORTANT: Changing this will reset all existing emoji codes. This means:\n#   - Previously written emojis on signs and item names will appear as invalid symbols;\n#   - Range will be increased from 2000 to 6400 available emoji unicode symbols.\nextendedUnicodeRange: false\n\nmessages:\n  \"resource-pack-description\": \"\u0026nImage Emojis\"\n  \"only-players\": \"\u0026cOnly players can use this command!\"\n  \"info-content\": \"\u0026#F4CA16[ImageEmojis] \u0026#B3BEC4There are currently \u0026#D8E5EC\u0026n%s\u0026r\u0026#B3BEC4 emojis!\n    \\n \u0026#D8E5EC\u0026n/emojis list\u0026r\u0026#B3BEC4 - see the emojis list.\n    \\n \u0026#D8E5EC\u0026n/emojis update\u0026r\u0026#B3BEC4 - fetch the latest version of the resource pack if it was updated during the current game session.\"\n  \"resource-pack-up-to-date\": \"\u0026#F4CA16[ImageEmojis] \u0026#B3BEC4The resource pack is now up to date!\"\n  \"reloaded\": \"\u0026#F4CA16[ImageEmojis] \u0026#B3BEC4Reloaded!\"\n  \"not-enough-permissions\": \"\u0026#F4CA16[ImageEmojis] \u0026#B3BEC4Not enough permissions.\"\n  \"command-not-found\": \"\u0026#F4CA16[ImageEmojis] \u0026cOops! That command doesn't exist, or you don't have enough permissions.\"\n  \"command-disabled\": \"\u0026#F4CA16[ImageEmojis] \u0026#B3BEC4This command is disabled on that server.\"\n  \"an-error-occurred\": \"\u0026#F4CA16[ImageEmojis] \u0026cAn error occurred during reload! Check the console logs for details.\"\n```\n\n### 🚀 Installation guide\n\n\u003e [!IMPORTANT]\n\u003e Before getting started, make sure the plugin's version is **compatible** with your server version.\n\n1. Download the latest version of the plugin from the \u003ca href=\"https://github.com/MrQuackDuck/ImageEmojis/releases\"\u003eReleases\u003c/a\u003e tab.\n1. Put the downloaded `.jar` into the `./plugins` folder of your server.\n1. Restart your server or enter the `reload` command.\n1. Go to the `./plugins/ImageEmojis` directory and open `config.yml`.\n1. Make sure to put your server's public IP into the `serverIp` field.\n1. Open a **TCP port** _(**5000** by default)_ on your server equal to the `webServerPort` field from the `config.yml`.\n1. Run the `/emojis reload` command.\n\n\u003e [!NOTE]\n\u003e You should disable your resource pack in `server.properties` if you enabled it earlier.\n\n**Congrats!** Now you're ready to use the plugin. Put your emojis into the `../ImageEmojis/emojis/` directory, reload the plugin, and enter the `/emojis update` command on your client _(or just rejoin)_!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrquackduck%2Fimageemojis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrquackduck%2Fimageemojis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrquackduck%2Fimageemojis/lists"}