A Paper plugin for tab completion of emojis ๐
Here's a demo of the plugin in action:
Larger Minecraft servers that employ resource packs have been using these tab-completable emojis for ages. Origin Realms, Mineclub, and some upcoming servers come to mind. However, no plugin to replicate this was available to the public. Thus, EmojiTab was born.
EmojiTab creates a fake "player" in the player list for each emoji shortcode. This adds them to the list of usernames you can tab-complete in any chat message.
The players all appear to have no name, and have a gray skin to blend in with the player list's background (this can be configured.) This is how the big networks do it too, but you might not notice it because the player lists are usually quite full.
To keep these fake players from appearing above real players they are added to a fake scoreboard team called zzzzzzzzz_emoji_tab
.
EmojiTab should be compatible with all other chat/player list plugins. This is because everything is sent via packets, so none of the players/teams exist on the server. You'll notice that if you run /team list
, the team for sorting does not show up. On the backend, this means even if a player is looking at a custom plugin scoreboard, the team's sorting will still be in effect. If you run into any compatibility issues with other plugins, let me know!
- Download the latest release of EmojiTab.
- Download ProtocolLib
- Place the .jar files in the plugins folder of your Paper server running 1.19.2 or above.
Note: Spigot and Bukkit are NOT supported. This plugin uses several of Paper's API features. Paper is the most popular server software, but if there is enough demand for a Spigot version I could consider adding Spigot support.
This plugin depends on ProtocolLib for creating packets.
/emoji reload
- Reloads the configs and player lists.
/emoji toggle [player]
- Toggles tab completion of emojis for player, or yourself if no player is specified. This does NOT toggle the ability to use emojis in chat.
/emoji list
- List all emojis in chat. Hover over them to see names, and click to enter it in chat.
/emoji
- Shortcut for /emoji list
EmojiTab has two config files. config.yml
is for plugin-wide configuration settings. emojis.yml
is where you define your own emojis.
# EmojiTab by Legitimoose
# Character to put around emojis, can be left blank if desired.
# Defaults to semicolon ":"
emoji-wrapping: ":"
# Require permission emoji.use to be able to use emojis.
use-permissions: false
# Require permission emoji.use.<emoji name> to be able to use emojis.
# All emojis will still be visible in tab-completion to players without permission.
individual-permissions: false
# Whether to spam the server log with every emoji's data on startup
verbose: false
# CUSTOM PLAYER LIST SKIN
#
# Go to https://mineskin.org and choose a skin.
# Copy and paste "Texture Data" and "Texture Signature" into here.
custom-texture-data:
custom-texture-signature:
By default, emojis.yml
is populated with many of the characters included in Minecraft's default font.
An emoji can be one character โ
or multiple (ใเฒ ็เฒ )ใๅฝกโปโโป
. Custom characters can be added using a resource pack with a custom font.
name
is what you type in chat to make the emoji appear. aliases
is any number of alternate names for the same emoji.
NOTE: The combined length of name
and emoji-wrapping
(found in config.yml) cannot exceed 16 characters. This is a hard limit in Minecraft, and any emoji shortcodes longer than 16 characters will be truncated (you'll get a warning in the console, too.)
emojis:
โ:
name: swords
aliases: crossed_swords
โ :
name: skull
ยฉ:
name: copyright
ยฎ:
name: registered
โข:
name: tm
aliases: trademark
โผ:
name: '!!'
โ:
name: interrobang
aliases: [ '!?' ]
โ:
name: sun
โ:
name: cloud
โ:
name: female_sign
โ:
name: male_sign
โ :
name: spades
โฃ:
name: clubs
โฅ:
name: hearts
โฆ:
name: diamonds
โก:
name: lightning
aliases: zap
โ:
name: pickaxe
โ:
name: check_mark
โ:
name: snowflake
โ:
name: x
โค:
name: heart
โญ:
name: star
โ:
name: eject
โฉ:
name: fast_forward
โช:
name: fast_reverse
aliases: rewind
โญ:
name: next_track
โฎ:
name: last_track
โฏ:
name: play_or_pause
โธ:
name: pause
โน:
name: stop
aliases: square
โบ:
name: record
aliases: circle
โถ:
name: play
aliases: arrow_forward
โ:
name: reverse
aliases: arrow_backward
โ:
name: anchor
โบ:
name: smile
โน:
name: frown
aliases: sad
โ:
name: envelope
aliases: email
โ:
name: umbrella
โ:
name: umbrella_rain
โ:
name: comet
โ:
name: snowman2
โ:
name: snowman
โ:
name: hourglass
โ:
name: watch
โฃ:
name: heart_exclamation
โ:
name: lightning_rain
โ:
name: left_right
โ :
name: warning
โ:
name: circled_M
aliases: m
โฏ:
name: yin_yang
โ:
name: check_box
(ใเฒ ็เฒ )ใๅฝกโปโโป:
name: table_flip
PRs welcome! The source code is pretty well documented. If you have any questions, you can usually find me in my Discord server.