feat: Add support for Minecraft 1.20.5 (#186)

* feat: support Minecraft 1.20.5

* build: bump to 1.6.5

* refactor: optimize imports

* docs: update about menu author credits

* docs: update velocity meta author credits

* docs: update URL

* refactor: use Minedown from new repo

* docs: shorten name of Plugin Message API docs page

* deps: bump minimum Velocity version to 380
This commit is contained in:
William 2024-04-23 16:23:36 +01:00 committed by GitHub
parent 88dc2996e4
commit c23fdd1ff6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 27 additions and 20 deletions

View File

@ -45,7 +45,7 @@ dependencies {
implementation 'org.apache.commons:commons-text:1.12.0' implementation 'org.apache.commons:commons-text:1.12.0'
implementation 'net.william278:DesertWell:2.0.4' implementation 'net.william278:DesertWell:2.0.4'
implementation 'de.themoep:minedown-adventure:1.7.2-SNAPSHOT' implementation 'net.william278:minedown:1.8.2'
implementation 'org.bstats:bstats-velocity:3.0.2' implementation 'org.bstats:bstats-velocity:3.0.2'
implementation 'de.exlll:configlib-yaml:4.5.0' implementation 'de.exlll:configlib-yaml:4.5.0'

View File

@ -155,3 +155,4 @@ public class VelocitabAPIHook {
### 6. Next steps ### 6. Next steps
Now that you've got everything ready, you can start doing stuff with the Velocitab API! Now that you've got everything ready, you can start doing stuff with the Velocitab API!
- [[API Examples]] - [[API Examples]]
- See also: [[Plugin Message API]]

View File

@ -3,7 +3,7 @@ Velocitab supports the full range of modern color formatting, including RGB colo
Formatting is applied on header, footer and player text for each server group, and is applied after [[Placeholders]] have been inserted. 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 syntax reference
MineDown is the default formatter type, enabled by setting `formatter` 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. MineDown is the default formatter type, enabled by setting `formatter` to `MINEDOWN` in `config.yml`. See the [MineDown Syntax Reference](https://github.com/WiIIiam278/MineDown) on GitHub for the specification of how to format text with it.
## MiniMessage syntax reference ## MiniMessage syntax reference
MiniMessage formatting can be enabled by setting `formatter` 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. MiniMessage formatting can be enabled by setting `formatter` 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.

View File

@ -18,7 +18,7 @@ Please click through to the topic you wish to read about.
* 🖼️ [[Custom Logos]] * 🖼️ [[Custom Logos]]
* 📦 [[API]] * 📦 [[API]]
* 📝 [[API Examples]] * 📝 [[API Examples]]
* 📝 [[Plugin Message API Examples]] * 📝 [[Plugin Message API]]
## Links ## Links
* 💻 [GitHub](https://github.com/WiIIiam278/Velocitab) * 💻 [GitHub](https://github.com/WiIIiam278/Velocitab)

View File

@ -12,7 +12,7 @@
* 🖼️ [[Custom Logos]] * 🖼️ [[Custom Logos]]
* 📦 [[API]] * 📦 [[API]]
* 📝 [[API Examples]] * 📝 [[API Examples]]
* 📝 [[Plugin Message API Examples]] * 📝 [[Plugin Message API]]
## Links ## Links
* 💻 [GitHub](https://github.com/WiIIiam278/Velocitab) * 💻 [GitHub](https://github.com/WiIIiam278/Velocitab)

View File

@ -3,9 +3,9 @@ javaVersion=17
org.gradle.jvmargs='-Dfile.encoding=UTF-8' org.gradle.jvmargs='-Dfile.encoding=UTF-8'
org.gradle.daemon=true org.gradle.daemon=true
plugin_version=1.6.4 plugin_version=1.6.5
plugin_archive=velocitab plugin_archive=velocitab
plugin_description=A beautiful and versatile TAB list plugin for Velocity proxies plugin_description=A beautiful and versatile TAB list plugin for Velocity proxies
velocity_api_version=3.3.0 velocity_api_version=3.3.0
velocity_minimum_build=329 velocity_minimum_build=380

View File

@ -29,7 +29,10 @@ import net.william278.velocitab.packet.UpdateTeamsPacket;
import net.william278.velocitab.player.TabPlayer; import net.william278.velocitab.player.TabPlayer;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.*; import java.util.Arrays;
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
public class PluginMessageAPI { public class PluginMessageAPI {

View File

@ -21,7 +21,6 @@ package net.william278.velocitab.commands;
import com.mojang.brigadier.Command; import com.mojang.brigadier.Command;
import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.ArgumentBuilder;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.builder.RequiredArgumentBuilder; import com.mojang.brigadier.builder.RequiredArgumentBuilder;
import com.velocitypowered.api.command.BrigadierCommand; import com.velocitypowered.api.command.BrigadierCommand;
@ -47,10 +46,10 @@ public final class VelocitabCommand {
.title(Component.text("Velocitab")) .title(Component.text("Velocitab"))
.description(Component.text(plugin.getDescription().getDescription().orElseThrow())) .description(Component.text(plugin.getDescription().getDescription().orElseThrow()))
.version(plugin.getVersion()) .version(plugin.getVersion())
.credits("Author", .credits("Authors",
AboutMenu.Credit.of("William278").description("Click to visit website").url("https://william278.net")) AboutMenu.Credit.of("William278").description("Click to visit website").url("https://william278.net"),
AboutMenu.Credit.of("AlexDev03").description("Click to visit GitHub").url("https://github.com/alexdev03"))
.credits("Contributors", .credits("Contributors",
AboutMenu.Credit.of("AlexDev03").description("Code"),
AboutMenu.Credit.of("Ironboundred").description("Code"), AboutMenu.Credit.of("Ironboundred").description("Code"),
AboutMenu.Credit.of("Emibergo02").description("Code"), AboutMenu.Credit.of("Emibergo02").description("Code"),
AboutMenu.Credit.of("FreeMonoid").description("Code"), AboutMenu.Credit.of("FreeMonoid").description("Code"),

View File

@ -37,7 +37,7 @@ import java.util.function.Function;
public enum Formatter { public enum Formatter {
MINEDOWN( MINEDOWN(
(text, player, plugin) -> new MineDown(text).toComponent(), (text, player, plugin) -> new MineDown(text).toComponent(),
(text) -> text.replace("__", "_\\_"), MineDown::escape,
"MineDown", "MineDown",
(text) -> new MineDown(text).toComponent() (text) -> new MineDown(text).toComponent()
), ),

View File

@ -38,7 +38,8 @@ public class Protocol765Adapter extends Protocol404Adapter {
public Protocol765Adapter(@NotNull Velocitab plugin) { public Protocol765Adapter(@NotNull Velocitab plugin) {
super(plugin, Set.of( super(plugin, Set.of(
ProtocolVersion.MINECRAFT_1_20_3 ProtocolVersion.MINECRAFT_1_20_3,
ProtocolVersion.MINECRAFT_1_20_5
)); ));
} }

View File

@ -35,7 +35,10 @@ import net.william278.velocitab.tab.Nametag;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.slf4j.event.Level; import org.slf4j.event.Level;
import java.util.*; import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import static com.velocitypowered.api.network.ProtocolVersion.*; import static com.velocitypowered.api.network.ProtocolVersion.*;
@ -281,7 +284,8 @@ public class ScoreboardManager {
.mapping(0x56, MINECRAFT_1_19_3, true) .mapping(0x56, MINECRAFT_1_19_3, true)
.mapping(0x5A, MINECRAFT_1_19_4, true) .mapping(0x5A, MINECRAFT_1_19_4, true)
.mapping(0x5C, MINECRAFT_1_20_2, true) .mapping(0x5C, MINECRAFT_1_20_2, true)
.mapping(0x5E, MINECRAFT_1_20_3, true); .mapping(0x5E, MINECRAFT_1_20_3, true)
.mapping(0x60, MINECRAFT_1_20_5, true);
packetRegistration.register(); packetRegistration.register();
} catch (Throwable e) { } catch (Throwable e) {
plugin.log(Level.ERROR, "Failed to register UpdateTeamsPacket", e); plugin.log(Level.ERROR, "Failed to register UpdateTeamsPacket", e);

View File

@ -25,9 +25,7 @@ import net.william278.velocitab.player.TabPlayer;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.Optional; import java.util.Optional;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors;
/** /**
* The VanishTabList handles the tab list for vanished players * The VanishTabList handles the tab list for vanished players

View File

@ -3,9 +3,10 @@
"name": "Velocitab", "name": "Velocitab",
"version": "${version}", "version": "${version}",
"description": "${description}", "description": "${description}",
"url": "https://william278.net", "url": "https://william278.net/project/velocitab",
"authors": [ "authors": [
"William278" "William278",
"AlexDev03"
], ],
"dependencies": [ "dependencies": [
{ {