diff --git a/paper-server/patches/features/0009-Fix-entity-type-tags-suggestions-in-selectors.patch b/paper-server/patches/features/0009-Fix-entity-type-tags-suggestions-in-selectors.patch deleted file mode 100644 index 2d6d532ce..000000000 --- a/paper-server/patches/features/0009-Fix-entity-type-tags-suggestions-in-selectors.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jake Potrebic -Date: Sun, 22 Aug 2021 15:21:57 -0700 -Subject: [PATCH] Fix entity type tags suggestions in selectors - -This would really be better as a client fix because just to fix it -all EntityArguments have been told to ask the server for completions -when if this was fixed on the client, that wouldn't be needed. - -Mojira Issue: https://bugs.mojang.com/browse/MC-235045 - -diff --git a/net/minecraft/commands/CommandSourceStack.java b/net/minecraft/commands/CommandSourceStack.java -index cf923441da598637be74a5ffa4b4f948e01ff532..cbf32be9235921ebcaca88225120c2ca70a72771 100644 ---- a/net/minecraft/commands/CommandSourceStack.java -+++ b/net/minecraft/commands/CommandSourceStack.java -@@ -676,4 +676,20 @@ public class CommandSourceStack implements ExecutionCommandSource getSelectedEntities() { -+ if (io.papermc.paper.configuration.GlobalConfiguration.get().commands.fixTargetSelectorTagCompletion && this.source instanceof ServerPlayer player) { -+ final Entity cameraEntity = player.getCamera(); -+ final double pickDistance = player.entityInteractionRange(); -+ final Vec3 min = cameraEntity.getEyePosition(1.0F); -+ final Vec3 viewVector = cameraEntity.getViewVector(1.0F); -+ final Vec3 max = min.add(viewVector.x * pickDistance, viewVector.y * pickDistance, viewVector.z * pickDistance); -+ final net.minecraft.world.phys.AABB aabb = cameraEntity.getBoundingBox().expandTowards(viewVector.scale(pickDistance)).inflate(1.0D, 1.0D, 1.0D); -+ final net.minecraft.world.phys.EntityHitResult hitResult = net.minecraft.world.entity.projectile.ProjectileUtil.getEntityHitResult(cameraEntity, min, max, aabb, (e) -> !e.isSpectator() && e.isPickable(), pickDistance * pickDistance); -+ return hitResult != null ? java.util.Collections.singletonList(hitResult.getEntity().getStringUUID()) : SharedSuggestionProvider.super.getSelectedEntities(); -+ } -+ return SharedSuggestionProvider.super.getSelectedEntities(); -+ } -+ // Paper end - tell clients to ask server for suggestions for EntityArguments - } -diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java -index fa8c5ba4e0efd0c36613aaa8eaafba0cb70ceb87..19ccf3abf14c67f72a1ca065e4a304f50e645ef4 100644 ---- a/net/minecraft/commands/Commands.java -+++ b/net/minecraft/commands/Commands.java -@@ -509,6 +509,7 @@ public class Commands { - Map, CommandNode> commandNodeToSuggestionNode - ) { - commandNodeToSuggestionNode.keySet().removeIf((node) -> !org.spigotmc.SpigotConfig.sendNamespaced && node.getName().contains(":")); // Paper - Remove namedspaced from result nodes to prevent redirect trimming ~ see comment below -+ boolean registeredAskServerSuggestionsForTree = false; // Paper - tell clients to ask server for suggestions for EntityArguments - for (CommandNode commandNode : children) { // Paper - Perf: Async command map building; pass copy of children - // Paper start - Brigadier API - if (commandNode.clientNode != null) { -@@ -572,6 +573,12 @@ public class Commands { - RequiredArgumentBuilder requiredArgumentBuilder = (RequiredArgumentBuilder)argumentBuilder; - if (requiredArgumentBuilder.getSuggestionsProvider() != null) { - requiredArgumentBuilder.suggests(SuggestionProviders.safelySwap(requiredArgumentBuilder.getSuggestionsProvider())); -+ // Paper start - tell clients to ask server for suggestions for EntityArguments -+ registeredAskServerSuggestionsForTree = requiredArgumentBuilder.getSuggestionsProvider() == net.minecraft.commands.synchronization.SuggestionProviders.ASK_SERVER; -+ } else if (io.papermc.paper.configuration.GlobalConfiguration.get().commands.fixTargetSelectorTagCompletion && !registeredAskServerSuggestionsForTree && requiredArgumentBuilder.getType() instanceof net.minecraft.commands.arguments.EntityArgument) { -+ requiredArgumentBuilder.suggests(requiredArgumentBuilder.getType()::listSuggestions); -+ registeredAskServerSuggestionsForTree = true; // You can only -+ // Paper end - tell clients to ask server for suggestions for EntityArguments - } - } - -diff --git a/net/minecraft/commands/arguments/EntityArgument.java b/net/minecraft/commands/arguments/EntityArgument.java -index 0a01df6ebd14afe79bc76364cb1df5e0c5c08074..77a68052c7653aee54c60f4bded9fa5337e3e4db 100644 ---- a/net/minecraft/commands/arguments/EntityArgument.java -+++ b/net/minecraft/commands/arguments/EntityArgument.java -@@ -138,7 +138,7 @@ public class EntityArgument implements ArgumentType { - final boolean permission = sharedSuggestionProvider instanceof CommandSourceStack stack - ? stack.bypassSelectorPermissions || stack.hasPermission(2, "minecraft.command.selector") - : sharedSuggestionProvider.hasPermission(2); -- EntitySelectorParser entitySelectorParser = new EntitySelectorParser(stringReader, permission); -+ EntitySelectorParser entitySelectorParser = new EntitySelectorParser(stringReader, permission, true); // Paper - tell clients to ask server for suggestions for EntityArguments - // Paper end - Fix EntityArgument permissions - - try { -diff --git a/net/minecraft/commands/arguments/selector/EntitySelectorParser.java b/net/minecraft/commands/arguments/selector/EntitySelectorParser.java -index a6f232747df631f6afe440606bea94c588f1a0dd..fb42630741674c6cbd20b7d45d78dea1dc73a78f 100644 ---- a/net/minecraft/commands/arguments/selector/EntitySelectorParser.java -+++ b/net/minecraft/commands/arguments/selector/EntitySelectorParser.java -@@ -115,8 +115,15 @@ public class EntitySelectorParser { - private boolean hasScores; - private boolean hasAdvancements; - private boolean usesSelectors; -+ public boolean parsingEntityArgumentSuggestions; // Paper - tell clients to ask server for suggestions for EntityArguments - - public EntitySelectorParser(StringReader reader, boolean allowSelectors) { -+ // Paper start - tell clients to ask server for suggestions for EntityArguments -+ this(reader, allowSelectors, false); -+ } -+ public EntitySelectorParser(StringReader reader, boolean allowSelectors, boolean parsingEntityArgumentSuggestions) { -+ this.parsingEntityArgumentSuggestions = parsingEntityArgumentSuggestions; -+ // Paper end - tell clients to ask server for suggestions for EntityArguments - this.reader = reader; - this.allowSelectors = allowSelectors; - } -diff --git a/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java b/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java -index f6b58139aace70436034f0a16370236d975cb4ae..ee9949c41d38817b21b6f4fd728059a46fddf135 100644 ---- a/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java -+++ b/net/minecraft/commands/arguments/selector/options/EntitySelectorOptions.java -@@ -76,6 +76,19 @@ public class EntitySelectorOptions { - public static final DynamicCommandExceptionType ERROR_ENTITY_TYPE_INVALID = new DynamicCommandExceptionType( - type -> Component.translatableEscape("argument.entity.options.type.invalid", type) - ); -+ // Paper start - tell clients to ask server for suggestions for EntityArguments -+ public static final DynamicCommandExceptionType ERROR_ENTITY_TAG_INVALID = new DynamicCommandExceptionType((object) -> { -+ return io.papermc.paper.adventure.PaperAdventure -+ .asVanilla(net.kyori.adventure.text.Component -+ .text("Invalid or unknown entity type tag '" + object + "'") -+ .hoverEvent(net.kyori.adventure.text.event.HoverEvent -+ .showText(net.kyori.adventure.text.Component -+ .text("You can disable this error in 'paper.yml'") -+ ) -+ ) -+ ); -+ }); -+ // Paper end - tell clients to ask server for suggestions for EntityArguments - - private static void register(String id, EntitySelectorOptions.Modifier handler, Predicate predicate, Component tooltip) { - OPTIONS.put(id, new EntitySelectorOptions.Option(handler, predicate, tooltip)); -@@ -299,6 +312,12 @@ public class EntitySelectorOptions { - - if (parser.isTag()) { - TagKey> tagKey = TagKey.create(Registries.ENTITY_TYPE, ResourceLocation.read(parser.getReader())); -+ // Paper start - tell clients to ask server for suggestions for EntityArguments; throw error if invalid entity tag (only on suggestions to keep cmd success behavior) -+ if (parser.parsingEntityArgumentSuggestions && io.papermc.paper.configuration.GlobalConfiguration.get().commands.fixTargetSelectorTagCompletion && net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.get(tagKey).isEmpty()) { -+ parser.getReader().setCursor(cursor); -+ throw ERROR_ENTITY_TAG_INVALID.createWithContext(parser.getReader(), tagKey); -+ } -+ // Paper end - tell clients to ask server for suggestions for EntityArguments - parser.addPredicate(entity -> entity.getType().is(tagKey) != shouldInvertValue); - } else { - ResourceLocation resourceLocation = ResourceLocation.read(parser.getReader()); diff --git a/paper-server/patches/features/0010-Handle-Oversized-block-entities-in-chunks.patch b/paper-server/patches/features/0009-Handle-Oversized-block-entities-in-chunks.patch similarity index 100% rename from paper-server/patches/features/0010-Handle-Oversized-block-entities-in-chunks.patch rename to paper-server/patches/features/0009-Handle-Oversized-block-entities-in-chunks.patch diff --git a/paper-server/patches/features/0011-optimize-dirt-and-snow-spreading.patch b/paper-server/patches/features/0010-optimize-dirt-and-snow-spreading.patch similarity index 100% rename from paper-server/patches/features/0011-optimize-dirt-and-snow-spreading.patch rename to paper-server/patches/features/0010-optimize-dirt-and-snow-spreading.patch diff --git a/paper-server/patches/features/0012-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/paper-server/patches/features/0011-Optimise-getChunkAt-calls-for-loaded-chunks.patch similarity index 100% rename from paper-server/patches/features/0012-Optimise-getChunkAt-calls-for-loaded-chunks.patch rename to paper-server/patches/features/0011-Optimise-getChunkAt-calls-for-loaded-chunks.patch diff --git a/paper-server/patches/features/0013-Optimize-Bit-Operations-by-inlining.patch b/paper-server/patches/features/0012-Optimize-Bit-Operations-by-inlining.patch similarity index 100% rename from paper-server/patches/features/0013-Optimize-Bit-Operations-by-inlining.patch rename to paper-server/patches/features/0012-Optimize-Bit-Operations-by-inlining.patch diff --git a/paper-server/patches/features/0014-Remove-streams-from-hot-code.patch b/paper-server/patches/features/0013-Remove-streams-from-hot-code.patch similarity index 100% rename from paper-server/patches/features/0014-Remove-streams-from-hot-code.patch rename to paper-server/patches/features/0013-Remove-streams-from-hot-code.patch diff --git a/paper-server/patches/features/0015-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch b/paper-server/patches/features/0014-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch similarity index 100% rename from paper-server/patches/features/0015-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch rename to paper-server/patches/features/0014-Optimize-Pathfinder-Remove-Streams-Optimized-collect.patch diff --git a/paper-server/patches/features/0016-Rewrite-dataconverter-system.patch b/paper-server/patches/features/0015-Rewrite-dataconverter-system.patch similarity index 99% rename from paper-server/patches/features/0016-Rewrite-dataconverter-system.patch rename to paper-server/patches/features/0015-Rewrite-dataconverter-system.patch index ef5f7da45..cd20ceb47 100644 --- a/paper-server/patches/features/0016-Rewrite-dataconverter-system.patch +++ b/paper-server/patches/features/0015-Rewrite-dataconverter-system.patch @@ -30621,7 +30621,7 @@ index 1110ca4075a1bbaa46b66686435dab91b275c945..c2218630c3074c8b3f82364e37503b12 return structureTemplate.save(new CompoundTag()); } diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 0d65bf24f515b80701150fdc430f324a533cb478..b92a3da5c325e69f5601416d4205fb33429742b3 100644 +index e54b5a165ad4dc4d2158dab34c5008512e5f7885..841a41485af62470d833aba578069b19a0bd1e8d 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -305,6 +305,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop