From 3c1a980e25e4dd7161c24789fd8563d634469fef Mon Sep 17 00:00:00 2001 From: ironboundred <44921987+ironboundred@users.noreply.github.com> Date: Mon, 1 May 2023 14:50:59 -0500 Subject: [PATCH 01/15] set minimal update rate (#52) --- src/main/java/net/william278/velocitab/config/Settings.java | 3 ++- src/main/java/net/william278/velocitab/tab/PlayerTabList.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/william278/velocitab/config/Settings.java b/src/main/java/net/william278/velocitab/config/Settings.java index 1f13bbf..02dafd9 100644 --- a/src/main/java/net/william278/velocitab/config/Settings.java +++ b/src/main/java/net/william278/velocitab/config/Settings.java @@ -111,7 +111,8 @@ public class Settings { @Getter @YamlKey("update_rate") @YamlComment("How often in milliseconds to periodically update the TAB list, including header and footer, for all users.\n" + - "If set to 0, TAB will be updated on player join/leave instead. (1s = 1000ms)") + "If set to 0, TAB will be updated on player join/leave instead. (1s = 1000ms)\n" + + "The minimal update rate is 200ms, anything lower will automatically be set to 200ms.") private int updateRate = 0; public Settings(@NotNull Velocitab plugin) { diff --git a/src/main/java/net/william278/velocitab/tab/PlayerTabList.java b/src/main/java/net/william278/velocitab/tab/PlayerTabList.java index 9a8f18a..6ddebb3 100644 --- a/src/main/java/net/william278/velocitab/tab/PlayerTabList.java +++ b/src/main/java/net/william278/velocitab/tab/PlayerTabList.java @@ -224,7 +224,7 @@ public class PlayerTabList { player.sendHeaderAndFooter(this); }); }) - .repeat(updateRate, TimeUnit.MILLISECONDS) + .repeat(Math.max(200, updateRate), TimeUnit.MILLISECONDS) .schedule(); } From f75cdca180ef9404b1d378c54cbefab1dfa12bcc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 May 2023 21:00:51 +0100 Subject: [PATCH 02/15] Bump org.ajoberstar.grgit from 5.0.0 to 5.2.0 (#48) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 9162799..1fae252 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ import org.apache.tools.ant.filters.ReplaceTokens plugins { id 'com.github.johnrengelman.shadow' version '8.1.1' id 'org.cadixdev.licenser' version '0.6.1' - id 'org.ajoberstar.grgit' version '5.0.0' + id 'org.ajoberstar.grgit' version '5.2.0' id 'java' } From 1f09621e9a40fe6f1343cde183c337b7f69f1050 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 May 2023 21:00:58 +0100 Subject: [PATCH 03/15] Bump io.netty:netty-codec-http from 4.1.91.Final to 4.1.92.Final (#49) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 1fae252..83a70bd 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ dependencies { compileOnly 'com.velocitypowered:velocity-api:3.2.0-SNAPSHOT' compileOnly 'com.velocitypowered:velocity-proxy:3.2.0-SNAPSHOT' compileOnly 'net.luckperms:api:5.4' - compileOnly 'io.netty:netty-codec-http:4.1.91.Final' + compileOnly 'io.netty:netty-codec-http:4.1.92.Final' compileOnly 'io.github.miniplaceholders:miniplaceholders-api:2.0.0' compileOnly 'net.william278:PAPIProxyBridge:1.2' compileOnly 'org.projectlombok:lombok:1.18.26' From 8ba66e7b56cc013f80b64f03e712480ad45445cc Mon Sep 17 00:00:00 2001 From: William Date: Sat, 6 May 2023 15:49:14 +0100 Subject: [PATCH 04/15] docs: Update Formatting documentation --- docs/Formatting.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Formatting.md b/docs/Formatting.md index 3bf46f6..7510bbc 100644 --- a/docs/Formatting.md +++ b/docs/Formatting.md @@ -9,6 +9,6 @@ MineDown is the default formatter type. See the [MineDown Syntax Reference](http MiniMessage formatting can be enabled by setting `formatting_type` to `MINIMESSAGE` in `config.yml`. See the [MiniMessage Syntax Reference](https://docs.advntr.dev/minimessage/format.html) on the Adventure Docs for how to format text with it. Using MiniMessage as the formatter also allows compatibility for using MiniPlaceholders in text. ## Legacy formatting -> ⚠️ Option for legacy formatting is provided only for backwards compatibility with other plugins, please consider using MineDown or MiniMessage options instead! +> **Warning:** The option for legacy formatting is provided only for backwards compatibility with other plugins. Please consider using the MineDown or MiniMessage options instead! -Legacy formatting can be enabled by setting `formatting_type` to `LEGACY` in `config.yml`. Legacy formatter supports Mojang color and formatting codes (e.g. `&d`, `&l`), Adventure-styled RGB color codes (e.g. `&#a25981`), as well as BungeeCord RGB color codes (e.g. `&x&a&2&5&9&8&1`). See the [LegacyComponentSerializer Syntax Reference](https://docs.advntr.dev/serializer/legacy.html) on the Adventure Docs for more technical details. \ No newline at end of file +Legacy formatting can be enabled by setting `formatting_type` to `LEGACY` in `config.yml`. Legacy formatter supports Mojang color and formatting codes (e.g. `&d`, `&l`), Adventure-styled RGB color codes (e.g. `&#a25981`), as well as BungeeCord RGB color codes (e.g. `&x&a&2&5&9&8&1`). See the [LegacyComponentSerializer Syntax Reference](https://docs.advntr.dev/serializer/legacy.html) on the Adventure Docs for more technical details. From ab11f18e60deb45c5d77e24f2f974af18fb2f853 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 May 2023 15:49:22 +0100 Subject: [PATCH 05/15] Bump net.william278:DesertWell from 2.0.2 to 2.0.4 (#55) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 83a70bd..4899ac3 100644 --- a/build.gradle +++ b/build.gradle @@ -38,7 +38,7 @@ dependencies { implementation 'net.william278:Annotaml:2.0.1' implementation 'dev.dejvokep:boosted-yaml:1.3.1' implementation 'de.themoep:minedown-adventure:1.7.2-SNAPSHOT' - implementation 'net.william278:DesertWell:2.0.2' + implementation 'net.william278:DesertWell:2.0.4' implementation 'org.bstats:bstats-velocity:3.0.2' annotationProcessor 'org.projectlombok:lombok:1.18.26' From 6f6ba3b0bbd009bf7675514e06423d52c3188d78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 May 2023 13:21:40 +0100 Subject: [PATCH 06/15] Bump io.netty:netty-codec-http from 4.1.92.Final to 4.1.93.Final (#60) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4899ac3..56db7eb 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ dependencies { compileOnly 'com.velocitypowered:velocity-api:3.2.0-SNAPSHOT' compileOnly 'com.velocitypowered:velocity-proxy:3.2.0-SNAPSHOT' compileOnly 'net.luckperms:api:5.4' - compileOnly 'io.netty:netty-codec-http:4.1.92.Final' + compileOnly 'io.netty:netty-codec-http:4.1.93.Final' compileOnly 'io.github.miniplaceholders:miniplaceholders-api:2.0.0' compileOnly 'net.william278:PAPIProxyBridge:1.2' compileOnly 'org.projectlombok:lombok:1.18.26' From c734a8710008cdf4afdd28532906cf8c9971ec52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 May 2023 13:21:46 +0100 Subject: [PATCH 07/15] Bump org.projectlombok:lombok from 1.18.26 to 1.18.28 (#59) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 56db7eb..1b10636 100644 --- a/build.gradle +++ b/build.gradle @@ -32,7 +32,7 @@ dependencies { compileOnly 'io.netty:netty-codec-http:4.1.93.Final' compileOnly 'io.github.miniplaceholders:miniplaceholders-api:2.0.0' compileOnly 'net.william278:PAPIProxyBridge:1.2' - compileOnly 'org.projectlombok:lombok:1.18.26' + compileOnly 'org.projectlombok:lombok:1.18.28' implementation 'org.apache.commons:commons-text:1.10.0' implementation 'net.william278:Annotaml:2.0.1' @@ -41,7 +41,7 @@ dependencies { implementation 'net.william278:DesertWell:2.0.4' implementation 'org.bstats:bstats-velocity:3.0.2' - annotationProcessor 'org.projectlombok:lombok:1.18.26' + annotationProcessor 'org.projectlombok:lombok:1.18.28' } processResources { From 04e51a5b64e963983d30e622ba65d51a69d728db Mon Sep 17 00:00:00 2001 From: William Date: Mon, 29 May 2023 13:22:23 +0100 Subject: [PATCH 08/15] Bump to v1.4.1 --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index d09ab6f..f013108 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,6 +3,6 @@ javaVersion=16 org.gradle.jvmargs='-Dfile.encoding=UTF-8' org.gradle.daemon=true -plugin_version=1.4 +plugin_version=1.4.1 plugin_archive=velocitab -plugin_description=A super-simple (sorted!) Velocity TAB menu plugin \ No newline at end of file +plugin_description=A super-simple (sorted!) Velocity TAB menu plugin From eb36002f36a46adf2edd7d517682762ff26c51d8 Mon Sep 17 00:00:00 2001 From: William Date: Mon, 29 May 2023 13:26:15 +0100 Subject: [PATCH 09/15] Fix a few issues in Setup docs --- docs/Setup.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/Setup.md b/docs/Setup.md index a2e4835..cd39420 100644 --- a/docs/Setup.md +++ b/docs/Setup.md @@ -8,10 +8,11 @@ This page will walk you through installing Velocitab on a Velocity proxy server. ## Installation 1. Download the latest version of [Velocitab](https://modrinth.com/plugin/velocitab) -2. Drag both into the `/plugins/` folder on your Velocity proxy server +2. Drag the plugin into the `/plugins/` folder on your Velocity proxy server 3. Download and install additional optional dependencies on your proxy and backend servers as needed: - 1. If you'd like Velocitab to display user roles from [LuckPerms](https://luckperms.net/), ensure LuckPerms is installed on your proxy as well, and configured to synchronise role information over your database - 2. If you'd like to use [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) placeholders, install [PAPIProxyBridge](https://modrinth.com/plugin/papiproxybridge) on both your Velocity server and Spigot-based Minecraft servers. Also ensure PlaceholderAPI is installed on your spigot servers + 1. If you'd like Velocitab to display user roles from [LuckPerms](https://luckperms.net/), ensure LuckPerms is installed on your Velocity proxy as well, and configured to synchronise role information over your database + 2. If you'd like to use [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) placeholders, install [PAPIProxyBridge](https://modrinth.com/plugin/papiproxybridge) on both your Velocity proxy and Spigot-based Minecraft servers. Also ensure PlaceholderAPI is installed on your spigot servers + 3. If you'd like to use [MiniPlaceholders](https://modrinth.com/plugin/miniplaceholders) placeholders, install MiniPlaceholders on your Velocity proxy. 4. Restart your proxy to let Velocitab generate its configuration file 5. Stop your proxy server, modify the [`config.yml`](config-file) file to your liking, and start your server @@ -22,4 +23,4 @@ Velocitab should now be successfully installed on your proxy. * [Using Placeholders](placeholders) * [Text Formatting](formatting) * [Server Groups](server-groups) -* [Using Animations](animations) \ No newline at end of file +* [Using Animations](animations) From 49f6f61ba6519fc6ad6adf61de963fb5cedf826d Mon Sep 17 00:00:00 2001 From: William Date: Mon, 29 May 2023 13:27:17 +0100 Subject: [PATCH 10/15] docs: Tweak language in Formatting --- docs/Formatting.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Formatting.md b/docs/Formatting.md index 7510bbc..8ce0d9e 100644 --- a/docs/Formatting.md +++ b/docs/Formatting.md @@ -1,9 +1,9 @@ -Velocitab supports the full range of modern color formatting, including RGB colors and gradients. Both MineDown (_default_) and MiniMessage are supported as formats. To change which formatter is being used, change the `formatting_type` value in `config.yml` to `MINEDOWN` or `MINIMESSAGE` respectively. +Velocitab supports the full range of modern color formatting, including RGB colors and gradients. Both MineDown (_default_), MiniMessage and Legacy formatting are supported. To change which formatter is being used, change the `formatting_type` value in `config.yml` to `MINEDOWN`, `MINIMESSAGE` or `LEGACY` respectively. Formatting is applied on header, footer and player text for each server group, and is applied after [[Placeholders]] have been inserted. ## MineDown syntax reference -MineDown is the default formatter type. See the [MineDown Syntax Reference](https://github.com/Phoenix616/MineDown) on GitHub for the specification of how to format text with it. +MineDown is the default formatter type, enabled by setting `formatting_type` to `MINEDOWN` in `config.yml`. See the [MineDown Syntax Reference](https://github.com/Phoenix616/MineDown) on GitHub for the specification of how to format text with it. ## MiniMessage syntax reference MiniMessage formatting can be enabled by setting `formatting_type` to `MINIMESSAGE` in `config.yml`. See the [MiniMessage Syntax Reference](https://docs.advntr.dev/minimessage/format.html) on the Adventure Docs for how to format text with it. Using MiniMessage as the formatter also allows compatibility for using MiniPlaceholders in text. From e0fea30feb11ea05024baefcc7de15ca1aa21ac7 Mon Sep 17 00:00:00 2001 From: William Date: Mon, 29 May 2023 13:30:54 +0100 Subject: [PATCH 11/15] docs: Add clarity to update rate part of Animations page --- docs/Animations.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Animations.md b/docs/Animations.md index 2b3a2dd..99beab2 100644 --- a/docs/Animations.md +++ b/docs/Animations.md @@ -23,7 +23,7 @@ By default, the plugin will switch between each frame whenever it is updated. To ### Setting the frame rate The `update_rate` setting in your `config.yml` file—set to `0` by default—controls the length (in milliseconds†) between your TAB list being updated. On each update, the header or footer format will use the next frame in the list, looping back to the first after the last one has been displayed. -A good starting value for this could be `1000`, which is equivalent to one second. Once you've changed the value, use `/velocitab reload` to update the TAB menu in-game without restarting your proxy. +A good starting value for this could be `1000`, which is equivalent to one second. Once you've changed the value, use `/velocitab reload` to update the TAB menu in-game without restarting your proxy. Note the minimum update rate is `200` to avoid excessive network packet traffic, so values between `1`-`199` will be rounded up to `200`. If this value is set to `0` or below (as it is by default), the TAB menu will only update when a player joins or leaves, permissions are recalculated on LuckPerms, or the proxy is reloaded. †`1ms = 1/1000th` of a second. @@ -83,6 +83,6 @@ server_groups: default: - server - server2 -update_rate: 100 +update_rate: 200 ``` - \ No newline at end of file + From 7a1cc640b3053f600a6a57485f7e01e2985c713b Mon Sep 17 00:00:00 2001 From: William Date: Mon, 29 May 2023 14:17:05 +0100 Subject: [PATCH 12/15] Create Custom-Logos.md docs: Add docs for displaying custom logos --- docs/Custom-Logos.md | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 docs/Custom-Logos.md diff --git a/docs/Custom-Logos.md b/docs/Custom-Logos.md new file mode 100644 index 0000000..1e77460 --- /dev/null +++ b/docs/Custom-Logos.md @@ -0,0 +1,51 @@ +If you'd like to display a custom logo or image in your TAB menu, like the example listed on the project listing,[1] you will need to make use of a resource pack to retexture Minecraft's default Unicode characters. + +
+Example: Mine in Abyss server TAB menu. + +!["Mine In Abyss" server TAB menu, featuring a custom logo](https://github.com/WiIIiam278/Velocitab/assets/31187453/de3f24a7-cdff-4575-9b3d-446fb77a75c4) +
+ +## Creating a resource pack +To do this, you'll need to make a resource pack, and set it to be used on your servers as the Server Resource Pack[2]. To do this: +1. Create a blank resource pack. Consult the [Minecraft Wiki](https://minecraft.fandom.com/wiki/Resource_pack) for making a super basic resource pack layout; this involves creating a `pack.mcmeta` for the correct Minecraft version and placing this inside the root of a directory. +2. Create the directory to store your logo texture: `/assets/server_name/textures/font`. Replace `server_name` with your server name (lower case, no spaces) +3. Place your logo in that directory. The logo can have a maximum size of 256x256 (though you can technically use multiple characters if you want a larger logo; feel free to experiment) +4. Create the `/assets/minecraft/font` directory. +5. Create `default.json`, which we will use to specify a unicode character to replace with your logo texture. +6. Add the following to your `default.json` file, which will replace the (non-existent) Unicode character `\ue238` with your logo. Remember to replace `server_name` with the server name you used earlier: +```json +{ + "providers": [ + { + "file": "server_name:font/logo.png", + "chars": [ + "\ue238" + ], + "height": 50, + "ascent": 35, + "type": "bitmap" + } + ] +} +``` +7. Save the file. Note that later on you may need to tweak the `height` and `ascent` values in the file to suit your logo's size. +8. For testing, install the resource pack locally by placing it in your `~/.minecraft/resourcepacks` folder and select your newly created pack in the Resource Packs menu. +9. Copy the Unicode character from [fileformat.info's unicode browsertest page](fileformat.info/info/unicode/char/e238/browsertest.htm) and paste it to chat in-game. Observe and verify that your logo looks correct. + +## Applying your pack to your servers and Velocitab +10. In Velocitab, add your logo's Unicode character to the header section of one or more of your TAB menus. You may need to add multiple newlines (`\n`) after the Unicode character to add spacing between the header and player list. Use `/velocitab reload` to get it right. +11. Finally, set the pack as your server resource pack, by uploading it to a service that lets you supply a direct download link into your `server.properties` files. You should do this on all your backend (Spigot/Paper/Folia/Fabric, etc.) servers. +12. Restart everything and fine tune as necessary. + +## The entire _Bee Movie_ as an animated TAB header +You totally could render the entire _Bee Movie_ in the TAB menu by retexturing a ton of impossible Unicode characters with this method, yes (at a low resolution, granted). Bare in mind there are limits on maximum server resource pack sizes, so you'd need to do some optimizations. Your Velocitab config file would also be very long. Have fun. + +---- + + +[1] — Courtesy of Mine In Abyss. Made in Abyss © Akihito Tsukushi, Takeshobo / Made in Abyss Production Committee. + + + +[2] — Taken from [this helpful Reddit comment](https://www.reddit.com/r/admincraft/comments/llrgty/comment/gnswdcz/) on [/r/admincraft](https://www.reddit.com/r/admincraft/) by [/u/MrPowerGamerBR](https://www.reddit.com/user/MrPowerGamerBR/). From aaae3216c8901846a599bbbc20794d476194e13b Mon Sep 17 00:00:00 2001 From: William Date: Mon, 29 May 2023 14:17:51 +0100 Subject: [PATCH 13/15] docs: Add custom logos to sidebar --- docs/_Sidebar.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md index 6c09637..b9a03d6 100644 --- a/docs/_Sidebar.md +++ b/docs/_Sidebar.md @@ -7,8 +7,9 @@ * 🎨 [[Formatting]] * ✍️ [[Placeholders]] * ✨ [[Animations]] +* 🖼️ [[Custom Logos]] ## Links * 💻 [GitHub](https://github.com/WiIIiam278/Velocitab) * 📂 [Download](https://modrinth.com/plugin/velocitab) -* 💬 [Discord Support](https://discord.gg/tVYhJfyDWG) \ No newline at end of file +* 💬 [Discord Support](https://discord.gg/tVYhJfyDWG) From 9c7b8ac3df22cc6e593441565e85e1138913e743 Mon Sep 17 00:00:00 2001 From: William Date: Mon, 29 May 2023 14:18:08 +0100 Subject: [PATCH 14/15] docs: Add custom logos to homepage --- docs/Home.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/Home.md b/docs/Home.md index affe663..5e5e8ed 100644 --- a/docs/Home.md +++ b/docs/Home.md @@ -13,6 +13,7 @@ Please click through to the topic you wish to read about. * 🎨 [[Formatting]] * ✍️ [[Placeholders]] * ✨ [[Animations]] +* 🖼️ [[Custom Logos]] ## Links * 💻 [GitHub](https://github.com/WiIIiam278/Velocitab) @@ -20,4 +21,4 @@ Please click through to the topic you wish to read about. * 💬 [Discord Support](https://discord.gg/tVYhJfyDWG) ## Contribute to this documentation -This documentation is automatically generated from the source code and markdown files in the [Velocitab GitHub repository](https://github.com/WiIIiam278/Velocitab/tree/master/docs). If you wish to contribute to the documentation, please submit a pull request to the repository. \ No newline at end of file +This documentation is automatically generated from the source code and markdown files in the [Velocitab GitHub repository](https://github.com/WiIIiam278/Velocitab/tree/master/docs). If you wish to contribute to the documentation, please submit a pull request to the repository. From 83623eead840af05dd136134f98f30cf4473846c Mon Sep 17 00:00:00 2001 From: William Date: Wed, 7 Jun 2023 09:05:54 +0100 Subject: [PATCH 15/15] docs: Fix broken link --- docs/Custom-Logos.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Custom-Logos.md b/docs/Custom-Logos.md index 1e77460..a33ce2e 100644 --- a/docs/Custom-Logos.md +++ b/docs/Custom-Logos.md @@ -31,7 +31,7 @@ To do this, you'll need to make a resource pack, and set it to be used on your s ``` 7. Save the file. Note that later on you may need to tweak the `height` and `ascent` values in the file to suit your logo's size. 8. For testing, install the resource pack locally by placing it in your `~/.minecraft/resourcepacks` folder and select your newly created pack in the Resource Packs menu. -9. Copy the Unicode character from [fileformat.info's unicode browsertest page](fileformat.info/info/unicode/char/e238/browsertest.htm) and paste it to chat in-game. Observe and verify that your logo looks correct. +9. Copy the Unicode character from [fileformat.info's unicode browsertest page](https://fileformat.info/info/unicode/char/e238/browsertest.htm) and paste it to chat in-game. Observe and verify that your logo looks correct. ## Applying your pack to your servers and Velocitab 10. In Velocitab, add your logo's Unicode character to the header section of one or more of your TAB menus. You may need to add multiple newlines (`\n`) after the Unicode character to add spacing between the header and player list. Use `/velocitab reload` to get it right.