Paper plugin (1.19.4+) that brings custom emojis to the chat and tab complete! Resource pack auto generation
ImageEmojis is a Paper (1.19.4+) plugin that allows you to add your custom emojis on your server.
[IMPORTANT] The max resolution of an emoji is 256x256px! Emojis should be stored in the '.png' format.
If you have any issues/bugs, you may leave them here.
π Screenshots
π» Commands
/emojis list
β opens a book with all currently added emojis./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)./emojis reload
β reloads the plugin. Generates the resource pack based on the./plugins/ImageEmojis/emojis/
directory.
Aliases: /ie
, /imageemojis
.
π Permissions
imageemojis.admin
(for operators by default) β Allows to use/emojis reload
.imageemojis.use
(true by default) β Allows to use emojis as well as the/emojis
command.imageemojis.update
(true by default) β Allows to use/emojis update
.imageemojis.list
(true by default) β Allows to use/emojis list
.
π Key features
- 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 host machine (5000 by default).
- Chat suggestions - emoji suggestions when a player types a message in chat. You can choose from four suggestion modes:
NONE
- disable chat suggestions.TEMPLATES
(set by default) - suggest templates of emojis when typing (e.g., :clueless:).ACTUAL
- suggest actual emojis (their UTF-8 symbols) when typing. (e.g.,).
BOTH
- A combination of "TEMPLATES" and "ACTUAL" modes.
- Ability to merge emojis with your server resource pack: you can set the
mergeWithServerResourcePack
field totrue
in theconfig.yml
and put your resource pack into the../ImageEmojis/
directory with theserverResourcePack.zip
filename (the filename can be configured as well). - Sign replacement β you can enable/disable replacement of emoji templates on signs.
- Anvil replacement β you can enable/disable replacement of emoji templates when renaming an item in the anvil.
- 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.
- Discord integration - if you have the 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.
π Default config
[CAUTION] Don't forget to put your public IP into the serverIp
field.
Also, you should open the TCP port on your machine for the plugin to work. Port 5000 by default.
Otherwise, nothing will work.
# Your server public IP goes here.
serverIp: "127.0.0.1"
# The port the resource pack will be hosted on. When the plugin launches, an HTTP server starts on that port.
# It should be opened on the machine so that players can download the resource pack.
webServerPort: 5000
# Resource pack enforcement policies:
# NONE - The resource pack won't be loaded on join. This option can fit servers where players prefer to download the resource pack manually.
# OPTIONAL - Players can decline the resource pack from loading on join.
# REQUIRED - Players are forced to play with the resource pack.
enforcementPolicy: "OPTIONAL"
# Replace emojis in anvils? (e.g., when renaming items)
replaceInAnvils: true
# Replace emojis on signs? (e.g., after editing them)
replaceOnSigns: true
# Replace emojis when sending a command? (e.g., in the "/msg" or "/say" commands)
replaceInCommands: true
# What will happen if a player doesn't have the "imageemojis.use" permission?:
# ERASE_EMOJIS - Erase all emojis from payload and proceed.
# CANCEL_EVENT - Cancel the event completely (e.g., prevent the message from being sent).
noPermAction:
inChat: "ERASE_EMOJIS"
inAnvils: "ERASE_EMOJIS"
onSigns: "ERASE_EMOJIS"
inCommands: "ERASE_EMOJIS"
# Whether a player will see the "Not enough permissions" message.
# Will be shown only for events with the "CANCEL_EVENT" action selected.
noPermMessage: false
# Whether an emoji name should appear when you put your cursor over the emoji symbol in the chat.
# This feature MAY NOT WORK if you use Spigot-native chat formatters such as "VaultChatFormatter" or "LPC" due to their incompatibility with Paper Components.
# If you are looking for a simple chat formatter that doesn't break messages, you may consider using mine: https://github.com/MrQuackDuck/PlainChatFormatter
emojiHoverEnabled: true
emojiHoverColor: "#AAAAAA"
# Chat suggestions modes (when typing a message in the chat and hitting TAB on the keyboard):
# NONE - No suggestions.
# TEMPLATES - Suggest templates (e.g., ":sob:").
# ACTUAL - Suggest actual emoji (e.g., "π").
# BOTH - A combination of "TEMPLATES" and "ACTUAL" modes.
suggestionMode: "TEMPLATES"
# Emoji template format (e.g., you may replace colons or remove them completely).
templateFormat: ":<emoji>:"
# Should the plugin merge the "emojis.zip" resource pack with the server resource pack?
# If "true", you should put your resource pack in the "/plugins/ImageEmojis/" directory.
# The output will be generated within the "emojis.zip" archive.
mergeWithServerResourcePack: false
# Name of the resource pack to merge "emojis.zip" with.
mergeServerResourcePackName: "serverResourcePack.zip"
# 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).
# If you plan to use many emojis on your server, you may set this value to "true".
# IMPORTANT: Changing this will reset all existing emoji codes. This means:
# - Previously written emojis on signs and item names will appear as invalid symbols;
# - Range will be increased from 2000 to 6400 available emoji unicode symbols.
extendedUnicodeRange: false
messages:
"resource-pack-description": "&nImage Emojis"
"only-players": "&cOnly players can use this command!"
"info-content": "&#F4CA16[ImageEmojis] &#B3BEC4There are currently &#D8E5EC&n%s&r&#B3BEC4 emojis!
\n &#D8E5EC&n/emojis list&r&#B3BEC4 - see the emojis list.
\n &#D8E5EC&n/emojis update&r&#B3BEC4 - fetch the latest version of the resource pack if it was updated during the current game session."
"resource-pack-up-to-date": "&#F4CA16[ImageEmojis] &#B3BEC4The resource pack is now up to date!"
"reloaded": "&#F4CA16[ImageEmojis] &#B3BEC4Reloaded!"
"not-enough-permissions": "&#F4CA16[ImageEmojis] &#B3BEC4Not enough permissions."
"command-not-found": "&#F4CA16[ImageEmojis] &cOops! That command doesn't exist, or you don't have enough permissions."
"command-disabled": "&#F4CA16[ImageEmojis] &#B3BEC4This command is disabled on that server."
"an-error-occurred": "&#F4CA16[ImageEmojis] &cAn error occurred during reload! Check the console logs for details."
π Installation guide
[IMPORTANT] Before getting started, make sure the plugin's version is compatible with your server version.
- Download the latest version of the plugin from the Releases tab.
- Put the downloaded
.jar
into the./plugins
folder of your server. - Restart your server or enter the
reload
command. - Go to the
./plugins/ImageEmojis
directory and openconfig.yml
. - Make sure to put your server's public IP into the
serverIp
field. - Open a TCP port (5000 by default) on your server equal to the
webServerPort
field from theconfig.yml
. - Run the
/emojis reload
command.
[NOTE] You should disable your resource pack in server.properties
if you enabled it earlier.
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)!