From b36d0c23e1a1a673e3ca37a1d532c879c27bf0fa Mon Sep 17 00:00:00 2001 From: XiaoMoMi <972454774@qq.com> Date: Mon, 24 Jun 2024 00:14:44 +0800 Subject: [PATCH] some changes --- .../api/manager/VersionManager.java | 9 +- build.gradle.kts | 8 +- paper/build.gradle.kts | 8 +- paper/libs/Sparrow-Heart-0.17.jar | Bin 0 -> 161432 bytes .../paper/CustomNameplatesPluginImpl.java | 4 +- .../paper/adventure/AdventureManagerImpl.java | 4 + .../libraries/dependencies/Dependency.java | 10 +- .../mechanic/misc/VersionManagerImpl.java | 95 +++++----- .../requirement/RequirementManagerImpl.java | 6 +- .../paper/mechanic/team/TeamManagerImpl.java | 93 +++++----- .../mechanic/team/packet/TeamCreate.java | 166 ------------------ .../team/packet/TeamPacketAdaptor.java | 29 --- .../mechanic/team/packet/TeamPacket_1_17.java | 81 --------- .../mechanic/team/packet/TeamRemove.java | 56 ------ .../mechanic/team/packet/TeamUpdate.java | 149 ---------------- .../paper/util/ReflectionUtils.java | 55 ++++-- .../shaders/core/rendertype_text.fsh | 31 ++++ .../shaders/core/rendertype_text.json | 29 +++ .../shaders/core/rendertype_text.vsh | 28 +++ universe/build.gradle.kts | 2 +- 20 files changed, 245 insertions(+), 618 deletions(-) create mode 100644 paper/libs/Sparrow-Heart-0.17.jar delete mode 100644 paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamCreate.java delete mode 100644 paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamPacketAdaptor.java delete mode 100644 paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamPacket_1_17.java delete mode 100644 paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamRemove.java delete mode 100644 paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamUpdate.java create mode 100644 paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.fsh create mode 100644 paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.json create mode 100644 paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.vsh diff --git a/api/src/main/java/net/momirealms/customnameplates/api/manager/VersionManager.java b/api/src/main/java/net/momirealms/customnameplates/api/manager/VersionManager.java index 0ab1557..3680447 100644 --- a/api/src/main/java/net/momirealms/customnameplates/api/manager/VersionManager.java +++ b/api/src/main/java/net/momirealms/customnameplates/api/manager/VersionManager.java @@ -28,13 +28,6 @@ public interface VersionManager { */ boolean isFolia(); - /** - * Get bukkit version - * - * @return version - */ - String getServerVersion(); - /** * Check update * @@ -66,6 +59,8 @@ public interface VersionManager { boolean isVersionNewerThan1_19(); + boolean isMojmap(); + boolean isVersionNewerThan1_19_R2(); boolean isVersionNewerThan1_19_R3(); diff --git a/build.gradle.kts b/build.gradle.kts index 350fdd4..91d9d82 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,17 +2,17 @@ plugins { id("java") id("application") id("maven-publish") - id("com.github.johnrengelman.shadow") version "8.1.1" + id("io.github.goooler.shadow") version "8.1.7" } allprojects { - version = "2.3.3.9" + version = "2.4.0" apply() apply(plugin = "java") apply(plugin = "application") - apply(plugin = "com.github.johnrengelman.shadow") + apply(plugin = "io.github.goooler.shadow") apply(plugin = "org.gradle.maven-publish") application { @@ -20,8 +20,8 @@ allprojects { } repositories { - maven("https://maven.aliyun.com/repository/public/") mavenCentral() + maven("https://maven.aliyun.com/repository/public/") maven("https://papermc.io/repo/repository/maven-public/") maven("https://oss.sonatype.org/content/groups/public/") maven("https://repo.dmulloy2.net/repository/public/") diff --git a/paper/build.gradle.kts b/paper/build.gradle.kts index 17b3362..02fb38a 100644 --- a/paper/build.gradle.kts +++ b/paper/build.gradle.kts @@ -38,7 +38,6 @@ dependencies { compileOnly("commons-io:commons-io:2.15.1") compileOnly("org.geysermc.geyser:api:2.2.0-SNAPSHOT") compileOnly("LibsDisguises:LibsDisguises:10.0.42") - implementation("com.github.Xiao-MoMi:BiomeAPI:0.3") // chat channels compileOnly(files("libs/VentureChat-3.7.1.jar")) @@ -49,17 +48,18 @@ dependencies { // api module implementation(project(":api")) implementation(project(":common")) + implementation(files("libs/Sparrow-Heart-0.17.jar")) // adventure - compileOnly("net.kyori:adventure-api:4.16.0") - compileOnly("net.kyori:adventure-platform-bukkit:4.3.2") + compileOnly("net.kyori:adventure-api:4.17.0") + compileOnly("net.kyori:adventure-platform-bukkit:4.3.3") } tasks { shadowJar { relocate ("net.kyori", "net.momirealms.customnameplates.libraries") relocate ("org.bstats", "net.momirealms.customnameplates.libraries.bstats") - relocate ("net.momirealms.biomeapi", "net.momirealms.customnameplates.libraries.biomeapi") + relocate ("net.momirealms.sparrow.heart", "net.momirealms.customnameplates.libraries.sparrow") relocate ("org.apache.commons.pool2", "net.momirealms.customnameplates.libraries.commonspool2") relocate ("com.mysql", "net.momirealms.customnameplates.libraries.mysql") relocate ("org.mariadb", "net.momirealms.customnameplates.libraries.mariadb") diff --git a/paper/libs/Sparrow-Heart-0.17.jar b/paper/libs/Sparrow-Heart-0.17.jar new file mode 100644 index 0000000000000000000000000000000000000000..a304077702a41beb3e52d97eb3919be975da3d3f GIT binary patch literal 161432 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

rfiZpm5 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 z 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 literal 0 HcmV?d00001 diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/CustomNameplatesPluginImpl.java b/paper/src/main/java/net/momirealms/customnameplates/paper/CustomNameplatesPluginImpl.java index 05647bd..0e5f7f5 100644 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/CustomNameplatesPluginImpl.java +++ b/paper/src/main/java/net/momirealms/customnameplates/paper/CustomNameplatesPluginImpl.java @@ -64,13 +64,14 @@ public class CustomNameplatesPluginImpl extends CustomNameplatesPlugin implement @Override public void onLoad() { + this.versionManager = new VersionManagerImpl(this); this.dependencyManager = new DependencyManagerImpl(this, new ReflectionClassPathAppender(this.getClassLoader())); this.dependencyManager.loadDependencies(new ArrayList<>( List.of( Dependency.GSON, Dependency.SLF4J_API, Dependency.SLF4J_SIMPLE, - Dependency.COMMAND_API, + versionManager.isMojmap() ? Dependency.COMMAND_API_MOJMAP : Dependency.COMMAND_API, Dependency.BOOSTED_YAML, Dependency.BIOME_API, Dependency.ADVENTURE_BUNDLE, @@ -99,7 +100,6 @@ public class CustomNameplatesPluginImpl extends CustomNameplatesPlugin implement return; } this.adventureManager = new AdventureManagerImpl(this); - this.versionManager = new VersionManagerImpl(this); this.scheduler = new SchedulerImpl(this); this.storageManager = new StorageManagerImpl(this); this.requirementManager = new RequirementManagerImpl(this); diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/adventure/AdventureManagerImpl.java b/paper/src/main/java/net/momirealms/customnameplates/paper/adventure/AdventureManagerImpl.java index c790ed7..f39bbe8 100644 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/adventure/AdventureManagerImpl.java +++ b/paper/src/main/java/net/momirealms/customnameplates/paper/adventure/AdventureManagerImpl.java @@ -286,6 +286,10 @@ public class AdventureManagerImpl implements AdventureManager { } } + public Audience audience(Player player) { + return adventure.player(player); + } + public class CacheSystem { private final LoadingCache miniMessageToIChatComponentCache; diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/libraries/dependencies/Dependency.java b/paper/src/main/java/net/momirealms/customnameplates/paper/libraries/dependencies/Dependency.java index 345aa57..0256783 100644 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/libraries/dependencies/Dependency.java +++ b/paper/src/main/java/net/momirealms/customnameplates/paper/libraries/dependencies/Dependency.java @@ -63,11 +63,19 @@ public enum Dependency { COMMAND_API( "dev{}jorel", "commandapi-bukkit-shade", - "9.4.0", + "9.5.1", null, "commandapi-bukkit", Relocation.of("commandapi", "dev{}jorel{}commandapi") ), + COMMAND_API_MOJMAP( + "dev{}jorel", + "commandapi-bukkit-shade-mojang-mapped", + "9.5.1", + null, + "commandapi-bukkit-mojang-mapped", + Relocation.of("commandapi", "dev{}jorel{}commandapi") + ), MARIADB_DRIVER( "org{}mariadb{}jdbc", "mariadb-java-client", diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/misc/VersionManagerImpl.java b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/misc/VersionManagerImpl.java index 21625ad..c89223b 100644 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/misc/VersionManagerImpl.java +++ b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/misc/VersionManagerImpl.java @@ -22,6 +22,7 @@ import net.momirealms.customnameplates.api.manager.VersionManager; import net.momirealms.customnameplates.api.util.LogUtils; import net.momirealms.customnameplates.paper.CustomNameplatesPluginImpl; import net.momirealms.customnameplates.paper.adventure.AdventureManagerImpl; +import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -40,14 +41,11 @@ import java.util.concurrent.CompletableFuture; */ public class VersionManagerImpl implements VersionManager, Listener { - private final boolean isNewerThan1_19; - private final boolean isNewerThan1_19_R2; - private final boolean isNewerThan1_19_R3; - private final boolean isNewerThan1_20; - private final boolean isNewerThan1_20_R2; - private final String serverVersion; + + private final float mcVersion; private final CustomNameplatesPluginImpl plugin; private boolean isFolia; + private boolean isMojmap; private final String pluginVersion; private boolean isLatest = true; @@ -55,47 +53,47 @@ public class VersionManagerImpl implements VersionManager, Listener { public VersionManagerImpl(CustomNameplatesPluginImpl plugin) { this.plugin = plugin; // Get the server version - serverVersion = plugin.getServer().getClass().getPackage().getName().split("\\.")[3]; - String[] split = serverVersion.split("_"); - int main_ver = Integer.parseInt(split[1]); - // Determine if the server version is newer than 1_19_R2 and 1_20_R1 - if (main_ver >= 20) { - isNewerThan1_20_R2 = Integer.parseInt(split[2].substring(1)) >= 2; - isNewerThan1_19_R2 = isNewerThan1_19_R3 = true; - isNewerThan1_20 = true; - isNewerThan1_19 = true; - } else if (main_ver == 19) { - isNewerThan1_19_R2 = Integer.parseInt(split[2].substring(1)) >= 2; - isNewerThan1_19_R3 = Integer.parseInt(split[2].substring(1)) >= 3; - isNewerThan1_20 = isNewerThan1_20_R2 = false; - isNewerThan1_19 = true; - } else { - isNewerThan1_19 = isNewerThan1_19_R2= isNewerThan1_19_R3 = false; - isNewerThan1_20 = isNewerThan1_20_R2 = false; - } - // Check if the server is Folia - try { - Class.forName("io.papermc.paper.threadedregions.scheduler.AsyncScheduler"); - this.isFolia = true; - } catch (ClassNotFoundException ignored) { - } + + String[] split = Bukkit.getServer().getBukkitVersion().split("-")[0].split("\\."); + this.mcVersion = Float.parseFloat(split[1] + "." + split[2]); + // Get the plugin version this.pluginVersion = plugin.getDescription().getVersion(); + + // Check if the server is Folia + try { + Class.forName("io.papermc.paper.threadedregions.RegionizedServer"); + this.isFolia = true; + } catch (ClassNotFoundException ignored) { + this.isFolia = false; + } + + // Check if the server is Mojmap + try { + Class.forName("net.minecraft.network.protocol.game.ClientboundBossEventPacket"); + this.isMojmap = true; + } catch (ClassNotFoundException ignored) { + } + } + + @Override + public boolean isMojmap() { + return isMojmap; } @Override public boolean isVersionNewerThan1_19_R2() { - return isNewerThan1_19_R2; + return mcVersion >= 19.3; } @Override public boolean isVersionNewerThan1_20() { - return isNewerThan1_20; + return mcVersion >= 20; } @Override public boolean isVersionNewerThan1_20_R2() { - return isNewerThan1_20_R2; + return mcVersion >= 20.2; } @NotNull @@ -111,36 +109,42 @@ public class VersionManagerImpl implements VersionManager, Listener { @Override public boolean isVersionNewerThan1_19() { - return isNewerThan1_19; + return mcVersion >= 19; } @Override public boolean isVersionNewerThan1_19_R3() { - return isNewerThan1_19_R3; + return mcVersion >= 19.4; } @Override public int getPackFormat() { - switch (serverVersion) { - case "v1_20_R3" -> { + switch (Bukkit.getServer().getBukkitVersion().split("-")[0]) { + case "1.21" -> { + return 34; + } + case "1.20.5", "1.20.6" -> { + return 32; + } + case "1.20.3", "1.20.4" -> { return 22; } - case "v1_20_R2" -> { + case "1.20.2" -> { return 18; } - case "v1_20_R1" -> { + case "1.20", "1.20.1" -> { return 15; } - case "v1_19_R3" -> { + case "1.19.4" -> { return 13; } - case "v1_19_R2" -> { + case "1.19.3" -> { return 12; } - case "v1_19_R1" -> { + case "1.19", "1.19.1", "1.19.2" -> { return 9; } - case "v1_18_R1", "v1_18_R2" -> { + case "1.18", "1.18.1", "1.18.2" -> { return 8; } default -> { @@ -154,11 +158,6 @@ public class VersionManagerImpl implements VersionManager, Listener { return isFolia; } - @Override - public String getServerVersion() { - return serverVersion; - } - // Method to asynchronously check for plugin updates public CompletableFuture checkUpdate() { CompletableFuture updateFuture = new CompletableFuture<>(); diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/requirement/RequirementManagerImpl.java b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/requirement/RequirementManagerImpl.java index d988c03..678d056 100644 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/requirement/RequirementManagerImpl.java +++ b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/requirement/RequirementManagerImpl.java @@ -18,7 +18,6 @@ package net.momirealms.customnameplates.paper.mechanic.requirement; import me.clip.placeholderapi.PlaceholderAPI; -import net.momirealms.biomeapi.BiomeAPI; import net.momirealms.customnameplates.api.manager.RequirementManager; import net.momirealms.customnameplates.api.requirement.Requirement; import net.momirealms.customnameplates.api.requirement.RequirementExpansion; @@ -32,6 +31,7 @@ import net.momirealms.customnameplates.paper.util.ClassUtils; import net.momirealms.customnameplates.paper.util.ConfigUtils; import net.momirealms.customnameplates.paper.util.DisguiseUtils; import net.momirealms.customnameplates.paper.util.GeyserUtils; +import net.momirealms.sparrow.heart.SparrowHeart; import org.bukkit.World; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; @@ -327,14 +327,14 @@ public class RequirementManagerImpl implements RequirementManager { registerRequirement("biome", (args) -> { HashSet biomes = new HashSet<>(ConfigUtils.stringListArgs(args)); return condition -> { - String currentBiome = BiomeAPI.getBiomeAt(Objects.requireNonNull(condition.getOfflinePlayer().getPlayer()).getLocation()); + String currentBiome = SparrowHeart.getInstance().getBiomeResourceLocation(Objects.requireNonNull(condition.getOfflinePlayer().getPlayer()).getLocation()); return biomes.contains(currentBiome); }; }); registerRequirement("!biome", (args) -> { HashSet biomes = new HashSet<>(ConfigUtils.stringListArgs(args)); return condition -> { - String currentBiome = BiomeAPI.getBiomeAt(Objects.requireNonNull(condition.getOfflinePlayer().getPlayer()).getLocation()); + String currentBiome = SparrowHeart.getInstance().getBiomeResourceLocation(Objects.requireNonNull(condition.getOfflinePlayer().getPlayer()).getLocation()); return !biomes.contains(currentBiome); }; }); diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/TeamManagerImpl.java b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/TeamManagerImpl.java index 417f3d4..ca358e1 100644 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/TeamManagerImpl.java +++ b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/TeamManagerImpl.java @@ -27,13 +27,15 @@ import net.momirealms.customnameplates.api.CustomNameplatesPlugin; import net.momirealms.customnameplates.api.manager.TeamManager; import net.momirealms.customnameplates.api.util.LogUtils; import net.momirealms.customnameplates.common.message.MessageType; -import net.momirealms.customnameplates.common.team.TeamCollisionRule; -import net.momirealms.customnameplates.common.team.TeamColor; import net.momirealms.customnameplates.common.team.TeamTagVisibility; +import net.momirealms.customnameplates.paper.adventure.AdventureManagerImpl; import net.momirealms.customnameplates.paper.mechanic.misc.PacketManager; -import net.momirealms.customnameplates.paper.mechanic.team.packet.*; import net.momirealms.customnameplates.paper.mechanic.team.provider.*; import net.momirealms.customnameplates.paper.setting.CNConfig; +import net.momirealms.sparrow.heart.SparrowHeart; +import net.momirealms.sparrow.heart.feature.team.TeamCollisionRule; +import net.momirealms.sparrow.heart.feature.team.TeamColor; +import net.momirealms.sparrow.heart.feature.team.TeamVisibility; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; @@ -50,13 +52,11 @@ import java.util.Optional; public class TeamManagerImpl implements TeamManager, PluginMessageListener { private final CustomNameplatesPlugin plugin; - private final TeamPacketAdaptor teamPacketAdaptor; private TeamProvider teamProvider; private static final String CHANNEL = "customnameplates:cnp"; public TeamManagerImpl(CustomNameplatesPlugin plugin) { this.plugin = plugin; - this.teamPacketAdaptor = new TeamPacket_1_17(); } /** @@ -78,35 +78,33 @@ public class TeamManagerImpl implements TeamManager, PluginMessageListener { } playerTeam.addPlayer(player); } else { - PacketContainer createOwner = teamPacketAdaptor.getTeamCreatePacket( - TeamCreate.builder() - .teamName(team) - .color(TeamColor.WHITE) - .display("") - .prefix("") - .suffix("") - .members(Collections.singletonList(player.getName())) - .collisionRule(TeamCollisionRule.ALWAYS) - .tagVisibility(TeamTagVisibility.ALWAYS) - .build() - ); for (Player online : Bukkit.getOnlinePlayers()) { - PacketManager.getInstance().send(online, createOwner); + SparrowHeart.getInstance().addClientSideTeam(online, team, + Collections.singletonList(player.getName()), + "{\"text\":\"\"}", + "{\"text\":\"\"}", + "{\"text\":\"\"}", + TeamVisibility.ALWAYS, + TeamVisibility.ALWAYS, + TeamCollisionRule.ALWAYS, + TeamColor.WHITE, + true, + true + ); if (online == player) continue; String onlineTeam = teamProvider.getTeam(online, null); - PacketContainer createOther = teamPacketAdaptor.getTeamCreatePacket( - TeamCreate.builder() - .teamName(onlineTeam) - .color(TeamColor.WHITE) - .display("") - .prefix("") - .suffix("") - .members(Collections.singletonList(online.getName())) - .collisionRule(TeamCollisionRule.ALWAYS) - .tagVisibility(TeamTagVisibility.ALWAYS) - .build() + SparrowHeart.getInstance().addClientSideTeam(player, team, + Collections.singletonList(onlineTeam), + "{\"text\":\"\"}", + "{\"text\":\"\"}", + "{\"text\":\"\"}", + TeamVisibility.ALWAYS, + TeamVisibility.ALWAYS, + TeamCollisionRule.ALWAYS, + TeamColor.WHITE, + true, + true ); - PacketManager.getInstance().send(player, createOther); } } } @@ -127,28 +125,23 @@ public class TeamManagerImpl implements TeamManager, PluginMessageListener { Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard(); Optional.ofNullable(scoreboard.getTeam(team)).ifPresent(Team::unregister); } else { - PacketContainer packet = teamPacketAdaptor.getTeamRemovePacket( - TeamRemove.builder() - .teamName(team) - .build() - ); for (Player online : Bukkit.getOnlinePlayers()) { if (player == online) continue; - PacketManager.getInstance().send(online, packet); + SparrowHeart.getInstance().removeClientSideTeam(online, team); } } } @Override - public void updateTeam(Player owner, Player viewer, String prefix, String suffix, TeamColor color, TeamTagVisibility visibility) { + public void updateTeam(Player owner, Player viewer, String prefix, String suffix, net.momirealms.customnameplates.common.team.TeamColor color, TeamTagVisibility visibility) { if (CNConfig.disableTeamManage) return; String team = teamProvider.getTeam(owner, viewer); if (team == null) { LogUtils.warn("Failed to get player " + owner.getName() + "'s team for viewer " + viewer.getName()); return; } - if (color == TeamColor.NONE || color == TeamColor.CUSTOM) - color = TeamColor.WHITE; + if (color == net.momirealms.customnameplates.common.team.TeamColor.NONE || color == net.momirealms.customnameplates.common.team.TeamColor.CUSTOM) + color = net.momirealms.customnameplates.common.team.TeamColor.WHITE; if (plugin.getNameplateManager().isProxyMode()) { this.sendPluginMessage( MessageType.UPDATE, @@ -160,18 +153,18 @@ public class TeamManagerImpl implements TeamManager, PluginMessageListener { visibility.name() ); } else { - PacketContainer packet = teamPacketAdaptor.getTeamUpdatePacket( - TeamUpdate.builder() - .teamName(team) - .color(color) - .display("") - .prefix(prefix) - .suffix(suffix) - .tagVisibility(visibility) - .collisionRule(TeamCollisionRule.ALWAYS) - .build() + SparrowHeart.getInstance().updateClientSideTeam( + viewer, team, + "{\"text\":\"\"}", + AdventureManagerImpl.getInstance().componentToJson(AdventureManagerImpl.getInstance().getComponentFromMiniMessage(prefix)), + AdventureManagerImpl.getInstance().componentToJson(AdventureManagerImpl.getInstance().getComponentFromMiniMessage(suffix)), + TeamVisibility.ALWAYS, + TeamVisibility.ALWAYS, + TeamCollisionRule.ALWAYS, + TeamColor.valueOf(color.name()), + true, + true ); - PacketManager.getInstance().send(viewer, packet); } } diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamCreate.java b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamCreate.java deleted file mode 100644 index 6f24515..0000000 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamCreate.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (C) <2022> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package net.momirealms.customnameplates.paper.mechanic.team.packet; - -import net.kyori.adventure.text.Component; -import net.momirealms.customnameplates.common.team.TeamCollisionRule; -import net.momirealms.customnameplates.common.team.TeamColor; -import net.momirealms.customnameplates.common.team.TeamTagVisibility; -import net.momirealms.customnameplates.paper.adventure.AdventureManagerImpl; - -import java.util.Collection; - -public class TeamCreate { - - // String i - private String teamName; - // Collection j - private Collection members; - - /* - Optional k - */ - // IChatBaseComponent a - private Object teamDisplay; - // IChatBaseComponent b - private Object teamPrefix; - // IChatBaseComponent c - private Object teamSuffix; - // String d - private TeamTagVisibility tagVisibility; - // String e - private TeamCollisionRule collisionRule; - // Enum f - private TeamColor teamColor; - - private TeamCreate() { - } - - public TeamCreate( - String teamName, - Collection members, - Component teamDisplay, - Component teamPrefix, - Component teamSuffix, - TeamTagVisibility tagVisibility, - TeamCollisionRule collisionRule, - TeamColor teamColor - ) { - this.teamName = teamName; - this.members = members; - this.teamDisplay = teamDisplay; - this.teamPrefix = teamPrefix; - this.teamSuffix = teamSuffix; - this.tagVisibility = tagVisibility; - this.collisionRule = collisionRule; - this.teamColor = teamColor; - } - - public String getTeamName() { - return teamName; - } - - public Collection getMembers() { - return members; - } - - public Object getTeamDisplay() { - return teamDisplay; - } - - public Object getTeamPrefix() { - return teamPrefix; - } - - public Object getTeamSuffix() { - return teamSuffix; - } - - public TeamTagVisibility getTagVisibility() { - return tagVisibility; - } - - public TeamCollisionRule getCollisionRule() { - return collisionRule; - } - - public TeamColor getTeamColor() { - return teamColor; - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - - private final TeamCreate packet; - - public Builder() { - this.packet = new TeamCreate(); - } - - public static Builder of() { - return new Builder(); - } - - public Builder teamName(String name) { - packet.teamName = name; - return this; - } - - public Builder members(Collection members) { - packet.members = members; - return this; - } - - public Builder display(String display) { - packet.teamDisplay = AdventureManagerImpl.getInstance().getIChatComponentFromMiniMessage(display); - return this; - } - - public Builder prefix(String prefix) { - packet.teamPrefix = AdventureManagerImpl.getInstance().getIChatComponentFromMiniMessage(prefix); - return this; - } - - public Builder suffix(String suffix) { - packet.teamSuffix = AdventureManagerImpl.getInstance().getIChatComponentFromMiniMessage(suffix); - return this; - } - - public Builder color(TeamColor color) { - packet.teamColor = color; - return this; - } - - public Builder tagVisibility(TeamTagVisibility visibility) { - packet.tagVisibility = visibility; - return this; - } - - public Builder collisionRule(TeamCollisionRule rule) { - packet.collisionRule = rule; - return this; - } - - public TeamCreate build() { - return packet; - } - } -} diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamPacketAdaptor.java b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamPacketAdaptor.java deleted file mode 100644 index 068f327..0000000 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamPacketAdaptor.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) <2022> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package net.momirealms.customnameplates.paper.mechanic.team.packet; - -import com.comphenix.protocol.events.PacketContainer; - -public interface TeamPacketAdaptor { - - PacketContainer getTeamCreatePacket(TeamCreate teamCreate); - - PacketContainer getTeamUpdatePacket(TeamUpdate teamUpdate); - - PacketContainer getTeamRemovePacket(TeamRemove teamRemove); -} diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamPacket_1_17.java b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamPacket_1_17.java deleted file mode 100644 index 6c7fa31..0000000 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamPacket_1_17.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (C) <2022> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package net.momirealms.customnameplates.paper.mechanic.team.packet; - -import com.comphenix.protocol.PacketType; -import com.comphenix.protocol.events.InternalStructure; -import com.comphenix.protocol.events.PacketContainer; -import com.comphenix.protocol.utility.MinecraftReflection; -import net.momirealms.customnameplates.common.team.TeamColor; - -import java.util.Optional; - -@SuppressWarnings("DuplicatedCode") -public class TeamPacket_1_17 implements TeamPacketAdaptor { - - @Override - public PacketContainer getTeamCreatePacket(TeamCreate teamCreate) { - PacketContainer packet = new PacketContainer(PacketType.Play.Server.SCOREBOARD_TEAM); - // 0 = create team - packet.getModifier().write(0,0); - packet.getModifier().write(1, teamCreate.getTeamName()); - packet.getModifier().write(2, teamCreate.getMembers()); - Optional optionalInternalStructure = packet.getOptionalStructures().read(0); - if (optionalInternalStructure.isPresent()) { - InternalStructure is = optionalInternalStructure.get(); - // Team - is.getModifier().write(0, teamCreate.getTeamDisplay()); - is.getModifier().write(1, teamCreate.getTeamPrefix()); - is.getModifier().write(2, teamCreate.getTeamSuffix()); - is.getModifier().write(3, teamCreate.getTagVisibility().getId()); - is.getModifier().write(4, teamCreate.getCollisionRule().getId()); - is.getEnumModifier(TeamColor.class, MinecraftReflection.getMinecraftClass("EnumChatFormat")).write(0, teamCreate.getTeamColor()); - is.getModifier().write(6, teamCreate.getMembers().size()); - } - return packet; - } - - @Override - public PacketContainer getTeamRemovePacket(TeamRemove teamRemove) { - PacketContainer packet = new PacketContainer(PacketType.Play.Server.SCOREBOARD_TEAM); - // 1 = remove team - packet.getModifier().write(0,1); - packet.getStrings().write(0, teamRemove.getTeamName()); - return packet; - } - - @Override - public PacketContainer getTeamUpdatePacket(TeamUpdate teamUpdate) { - PacketContainer packet = new PacketContainer(PacketType.Play.Server.SCOREBOARD_TEAM); - // 2 = update team - packet.getModifier().write(0,2); - packet.getModifier().write(1, teamUpdate.getTeamName()); - Optional optionalInternalStructure = packet.getOptionalStructures().read(0); - if (optionalInternalStructure.isPresent()) { - InternalStructure is = optionalInternalStructure.get(); - // Team - is.getModifier().write(0, teamUpdate.getTeamDisplay()); - is.getModifier().write(1, teamUpdate.getTeamPrefix()); - is.getModifier().write(2, teamUpdate.getTeamSuffix()); - is.getModifier().write(3, teamUpdate.getTagVisibility().getId()); - is.getModifier().write(4, teamUpdate.getCollisionRule().getId()); - is.getEnumModifier(TeamColor.class, MinecraftReflection.getMinecraftClass("EnumChatFormat")).write(0, teamUpdate.getTeamColor()); - } - return packet; - } -} diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamRemove.java b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamRemove.java deleted file mode 100644 index a445dc7..0000000 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamRemove.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) <2022> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package net.momirealms.customnameplates.paper.mechanic.team.packet; - -public class TeamRemove { - - private String teamName; - - private TeamRemove() { - } - - public TeamRemove(String teamName) { - this.teamName = teamName; - } - - public String getTeamName() { - return teamName; - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - - private final TeamRemove packet; - - public Builder() { - this.packet = new TeamRemove(); - } - - public Builder teamName(String teamName) { - packet.teamName = teamName; - return this; - } - - public TeamRemove build() { - return packet; - } - } -} diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamUpdate.java b/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamUpdate.java deleted file mode 100644 index 881bbee..0000000 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/mechanic/team/packet/TeamUpdate.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (C) <2022> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package net.momirealms.customnameplates.paper.mechanic.team.packet; - -import net.momirealms.customnameplates.common.team.TeamCollisionRule; -import net.momirealms.customnameplates.common.team.TeamColor; -import net.momirealms.customnameplates.common.team.TeamTagVisibility; -import net.momirealms.customnameplates.paper.adventure.AdventureManagerImpl; - -public class TeamUpdate { - - private String teamName; - - /* - Optional k - */ - // IChatBaseComponent a - private Object teamDisplay; - // IChatBaseComponent b - private Object teamPrefix; - // IChatBaseComponent c - private Object teamSuffix; - // String d - private TeamTagVisibility tagVisibility; - // String e - private TeamCollisionRule collisionRule; - // Enum f - private TeamColor teamColor; - - private TeamUpdate() { - } - - public TeamUpdate( - String teamName, - Object teamDisplay, - Object teamPrefix, - Object teamSuffix, - TeamTagVisibility tagVisibility, - TeamCollisionRule collisionRule, - TeamColor teamColor - ) { - this.teamName = teamName; - this.teamDisplay = teamDisplay; - this.teamPrefix = teamPrefix; - this.teamSuffix = teamSuffix; - this.tagVisibility = tagVisibility; - this.collisionRule = collisionRule; - this.teamColor = teamColor; - } - - public String getTeamName() { - return teamName; - } - - public Object getTeamDisplay() { - return teamDisplay; - } - - public Object getTeamPrefix() { - return teamPrefix; - } - - public Object getTeamSuffix() { - return teamSuffix; - } - - public TeamTagVisibility getTagVisibility() { - return tagVisibility; - } - - public TeamCollisionRule getCollisionRule() { - return collisionRule; - } - - public TeamColor getTeamColor() { - return teamColor; - } - - public static Builder builder() { - return new Builder(); - } - - public static class Builder { - - private final TeamUpdate packet; - - public Builder() { - this.packet = new TeamUpdate(); - } - - public static Builder of() { - return new Builder(); - } - - public Builder teamName(String name) { - packet.teamName = name; - return this; - } - - public Builder display(String display) { - packet.teamDisplay = AdventureManagerImpl.getInstance().getIChatComponentFromMiniMessage(display); - return this; - } - - public Builder prefix(String prefix) { - packet.teamPrefix = AdventureManagerImpl.getInstance().getIChatComponentFromMiniMessage(prefix); - return this; - } - - public Builder suffix(String suffix) { - packet.teamSuffix = AdventureManagerImpl.getInstance().getIChatComponentFromMiniMessage(suffix);; - return this; - } - - public Builder color(TeamColor color) { - packet.teamColor = color; - return this; - } - - public Builder tagVisibility(TeamTagVisibility visibility) { - packet.tagVisibility = visibility; - return this; - } - - public Builder collisionRule(TeamCollisionRule rule) { - packet.collisionRule = rule; - return this; - } - - public TeamUpdate build() { - return packet; - } - } -} diff --git a/paper/src/main/java/net/momirealms/customnameplates/paper/util/ReflectionUtils.java b/paper/src/main/java/net/momirealms/customnameplates/paper/util/ReflectionUtils.java index dbe4bcc..be8da43 100644 --- a/paper/src/main/java/net/momirealms/customnameplates/paper/util/ReflectionUtils.java +++ b/paper/src/main/java/net/momirealms/customnameplates/paper/util/ReflectionUtils.java @@ -18,6 +18,7 @@ package net.momirealms.customnameplates.paper.util; import com.comphenix.protocol.utility.MinecraftReflection; +import net.momirealms.customnameplates.api.CustomNameplatesPlugin; import net.momirealms.customnameplates.api.util.LogUtils; import java.lang.reflect.Constructor; @@ -42,23 +43,43 @@ public class ReflectionUtils { private static boolean isPaper; public static void load() { - try { - Class bar = Class.forName("net.minecraft.network.protocol.game.PacketPlayOutBoss"); - Field remove = bar.getDeclaredField("f"); - remove.setAccessible(true); - removeBossBarPacket = remove.get(null); - Class packetBossClassF = Class.forName("net.minecraft.network.protocol.game.PacketPlayOutBoss$f"); - progressConstructor = packetBossClassF.getDeclaredConstructor(float.class); - progressConstructor.setAccessible(true); - Class packetBossClassE = Class.forName("net.minecraft.network.protocol.game.PacketPlayOutBoss$e"); - updateConstructor = packetBossClassE.getDeclaredConstructor(MinecraftReflection.getIChatBaseComponentClass()); - updateConstructor.setAccessible(true); - iChatComponentMethod = MinecraftReflection.getChatSerializerClass().getMethod("a", String.class); - iChatComponentMethod.setAccessible(true); - emptyComponent = iChatComponentMethod.invoke(null, "{\"text\":\"\"}"); - } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException | NoSuchMethodException | InvocationTargetException exception) { - LogUtils.severe("Error occurred when loading reflections", exception); - exception.printStackTrace(); + if (CustomNameplatesPlugin.get().getVersionManager().isMojmap()) { + try { + Class bar = Class.forName("net.minecraft.network.protocol.game.ClientboundBossEventPacket"); + Field remove = bar.getDeclaredField("REMOVE_OPERATION"); + remove.setAccessible(true); + removeBossBarPacket = remove.get(null); + Class packetBossClassF = Class.forName("net.minecraft.network.protocol.game.ClientboundBossEventPacket$UpdateProgressOperation"); + progressConstructor = packetBossClassF.getDeclaredConstructor(float.class); + progressConstructor.setAccessible(true); + Class packetBossClassE = Class.forName("net.minecraft.network.protocol.game.ClientboundBossEventPacket$UpdateNameOperation"); + updateConstructor = packetBossClassE.getDeclaredConstructor(MinecraftReflection.getIChatBaseComponentClass()); + updateConstructor.setAccessible(true); + Class craftChatMessageClass = Class.forName("org.bukkit.craftbukkit.util.CraftChatMessage"); + iChatComponentMethod = craftChatMessageClass.getDeclaredMethod("fromJSON", String.class); + iChatComponentMethod.setAccessible(true); + emptyComponent = iChatComponentMethod.invoke(null, "{\"text\":\"\"}"); + } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException | NoSuchMethodException | InvocationTargetException exception) { + LogUtils.severe("Error occurred while loading reflections", exception); + } + } else { + try { + Class bar = Class.forName("net.minecraft.network.protocol.game.PacketPlayOutBoss"); + Field remove = bar.getDeclaredField("f"); + remove.setAccessible(true); + removeBossBarPacket = remove.get(null); + Class packetBossClassF = Class.forName("net.minecraft.network.protocol.game.PacketPlayOutBoss$f"); + progressConstructor = packetBossClassF.getDeclaredConstructor(float.class); + progressConstructor.setAccessible(true); + Class packetBossClassE = Class.forName("net.minecraft.network.protocol.game.PacketPlayOutBoss$e"); + updateConstructor = packetBossClassE.getDeclaredConstructor(MinecraftReflection.getIChatBaseComponentClass()); + updateConstructor.setAccessible(true); + iChatComponentMethod = MinecraftReflection.getChatSerializerClass().getMethod("a", String.class); + iChatComponentMethod.setAccessible(true); + emptyComponent = iChatComponentMethod.invoke(null, "{\"text\":\"\"}"); + } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException | NoSuchMethodException | InvocationTargetException exception) { + LogUtils.severe("Error occurred while loading reflections", exception); + } } try { Class componentClass = Class.forName("net;kyori;adventure;text;Component".replace(";", ".")); diff --git a/paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.fsh b/paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.fsh new file mode 100644 index 0000000..a3e3b84 --- /dev/null +++ b/paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.fsh @@ -0,0 +1,31 @@ +#version 150 +#moj_import + +uniform sampler2D Sampler0; +uniform vec4 ColorModulator; +uniform float FogStart,FogEnd; +uniform vec4 FogColor; +uniform float GameTime; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; +in float depthLevel; +%SHADER_0% +out vec4 fragColor; + +void main() { + vec4 texColor = texture(Sampler0, texCoord0); + vec4 color = texColor * vertexColor * ColorModulator;%SHADER_1% + if (color.a < 0.1) { + discard; + } + if (texColor.a == 254.0/255.0) { + if (depthLevel == 0.00) { + discard; + } else { + color = vec4(texColor.rgb, 1.0) * vertexColor * ColorModulator; + } + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} \ No newline at end of file diff --git a/paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.json b/paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.json new file mode 100644 index 0000000..217741e --- /dev/null +++ b/paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.json @@ -0,0 +1,29 @@ +{ + "blend": { + "func": "add", + "srcrgb": "srcalpha", + "dstrgb": "1-srcalpha" + }, + "vertex": "rendertype_text", + "fragment": "rendertype_text", + "attributes": [ + "Position", + "Color", + "UV0", + "UV2" + ], + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "IViewRotMat", "type": "matrix3x3", "count": 9, "values": [ 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "GameTime", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] } + ] +} diff --git a/paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.vsh b/paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.vsh new file mode 100644 index 0000000..e822d21 --- /dev/null +++ b/paper/src/main/resources/ResourcePack/overlay_1_20_5/assets/minecraft/shaders/core/rendertype_text.vsh @@ -0,0 +1,28 @@ +#version 150 +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; + +uniform sampler2D Sampler2; +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform mat3 IViewRotMat; +uniform float GameTime; +uniform int FogShape; +uniform vec2 ScreenSize; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; +out float depthLevel; +%SHADER_0% +void main() { + vec4 vertex = vec4(Position, 1.0); + vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + depthLevel = Position.z; + texCoord0 = UV0; + %SHADER_1%%SHADER_2%%SHADER_3% +} diff --git a/universe/build.gradle.kts b/universe/build.gradle.kts index 9d4a00f..b3fd73a 100644 --- a/universe/build.gradle.kts +++ b/universe/build.gradle.kts @@ -10,7 +10,7 @@ tasks { shadowJar { relocate ("net.kyori", "net.momirealms.customnameplates.libraries") relocate ("org.bstats", "net.momirealms.customnameplates.libraries.bstats") - relocate ("net.momirealms.biomeapi", "net.momirealms.customnameplates.libraries.biomeapi") + relocate ("net.momirealms.sparrow.heart", "net.momirealms.customnameplates.libraries.sparrow") relocate ("org.apache.commons.pool2", "net.momirealms.customnameplates.libraries.commonspool2") relocate ("com.mysql", "net.momirealms.customnameplates.libraries.mysql") relocate ("org.mariadb", "net.momirealms.customnameplates.libraries.mariadb")