diff --git a/build.gradle.kts b/build.gradle.kts index cf624c58..dee67613 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -63,7 +63,7 @@ tasks { finalizedBy(rootProject.tasks.jacocoTestReport) } runServer { - minecraftVersion("26.2") + minecraftVersion("26.3") jvmArgs("-Dcom.mojang.eula.agree=true") } jacocoTestReport { diff --git a/settings.gradle.kts b/settings.gradle.kts index 1e87a838..b2a8d131 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -33,7 +33,7 @@ dependencyResolutionManagement { create("libs") { version("hibernate", "7.3.13.Final") - version("paper", "26.1.2.build.+") + version("paper", "26.3.build.+") version("luckperms", "5.5") version("protocolLib", "5.3.0") version("bluemapApi", "2.8.2") diff --git a/src/main/java/net/onelitefeather/stardust/command/mapper/BukkitSenderMapper.java b/src/main/java/net/onelitefeather/stardust/command/mapper/BukkitSenderMapper.java index f7f04c1c..887e3906 100644 --- a/src/main/java/net/onelitefeather/stardust/command/mapper/BukkitSenderMapper.java +++ b/src/main/java/net/onelitefeather/stardust/command/mapper/BukkitSenderMapper.java @@ -10,9 +10,9 @@ import org.bukkit.entity.Player; import org.incendo.cloud.SenderMapper; import org.jetbrains.annotations.NotNull; +import org.jspecify.annotations.NonNull; -@SuppressWarnings("UnstableApiUsage") public class BukkitSenderMapper implements SenderMapper { private final ConsoleSenderMapper consoleSenderMapper = new ConsoleSenderMapper(); @@ -33,7 +33,7 @@ public class BukkitSenderMapper implements SenderMapper player.getLocation().distance(getLocation()) <= 1.0D) + .findFirst() + .orElseThrow(); + } + + @Override + public @NonNull Entity getEntityOrThrow() { + return getLocation().getNearbyEntitiesByType(Entity.class, 16) + .stream() + .filter(entity -> entity.getLocation().distance(getLocation()) <= 1.0D) + .findFirst() + .orElseThrow(); + } + + @Override public @NotNull CommandSourceStack withLocation(@NotNull Location location) { return this; @@ -62,7 +81,7 @@ public Entity getExecutor() { } } - @SuppressWarnings({"UnstableApiUsage", "NonExtendableApiUsage"}) + @SuppressWarnings({"NonExtendableApiUsage"}) private static class ConsoleSenderMapper implements CommandSourceStack { @Override public @NotNull Location getLocation() { @@ -79,6 +98,16 @@ public Entity getExecutor() { return null; } + @Override + public @NonNull Player getPlayerOrThrow() { + throw new IllegalCallerException("A Console cannot be an Player."); + } + + @Override + public @NonNull Entity getEntityOrThrow() { + throw new IllegalCallerException("A Console cannot be an Entity."); + } + @Override public @NotNull CommandSourceStack withLocation(@NotNull Location location) { return this; @@ -90,7 +119,7 @@ public Entity getExecutor() { } } - @SuppressWarnings({"UnstableApiUsage", "NonExtendableApiUsage"}) + @SuppressWarnings({"NonExtendableApiUsage"}) private record PlayerSenderMapper(Player player) implements CommandSourceStack { @Override @@ -108,6 +137,16 @@ public Entity getExecutor() { return this.player; } + @Override + public @NonNull Player getPlayerOrThrow() { + return this.player(); + } + + @Override + public @NonNull Entity getEntityOrThrow() { + return this.player(); + } + @Override public @NotNull CommandSourceStack withLocation(@NotNull Location location) { return this; diff --git a/src/main/java/net/onelitefeather/stardust/translation/PluginTranslationRegistry.java b/src/main/java/net/onelitefeather/stardust/translation/PluginTranslationRegistry.java deleted file mode 100644 index 4dac93c7..00000000 --- a/src/main/java/net/onelitefeather/stardust/translation/PluginTranslationRegistry.java +++ /dev/null @@ -1,61 +0,0 @@ -package net.onelitefeather.stardust.translation; - -import net.kyori.adventure.key.Key; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.TranslatableComponent; -import net.kyori.adventure.text.TranslationArgument; -import net.kyori.adventure.text.minimessage.MiniMessage; -import net.kyori.adventure.translation.GlobalTranslator; -import net.kyori.adventure.translation.TranslationRegistry; -import net.kyori.adventure.translation.Translator; -import org.jetbrains.annotations.NotNull; - -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - -public class PluginTranslationRegistry implements Translator { - private final TranslationRegistry translator; - - public PluginTranslationRegistry(TranslationRegistry translator) { - this.translator = translator; - } - - @Override - public @NotNull Key name() { - return this.translator.name(); - } - - @Override - public MessageFormat translate(@NotNull String key, @NotNull Locale locale) { - return this.translator.translate(key, locale); - } - - @Override - public Component translate(TranslatableComponent component, @NotNull Locale locale) { - MessageFormat miniMessageResult = this.translate(component.key(), locale); - if (miniMessageResult == null) { - return null; - } - - List values = new ArrayList<>(); - for (TranslationArgument argumentComponent : component.arguments()) { - String serialized = MiniMessage.miniMessage() - .serialize(GlobalTranslator.render(argumentComponent.asComponent(), locale)); - - values.add(serialized); - } - - Component resultComponent = MiniMessage.miniMessage().deserialize( - miniMessageResult.format(values.toArray(new String[0])) - ); - - List children = new ArrayList<>(); - for (Component child : resultComponent.children()) { - children.add(GlobalTranslator.render(child, locale)); - } - - return GlobalTranslator.render(resultComponent, locale).children(children); - } -}