Scissors/patches/server/0016-Don-t-query-player-data-in-the-nbt-component.patch

40 lines
2.2 KiB
Diff
Raw Normal View History

2022-07-28 03:57:50 +00:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2024-02-13 21:52:00 +00:00
From: Video <videogamesm12@gmail.com>
2023-12-11 00:23:09 +00:00
Date: Sun, 10 Dec 2023 17:39:52 -0600
2022-07-28 03:57:50 +00:00
Subject: [PATCH] Don't query player data in the `nbt` component
diff --git a/src/main/java/net/minecraft/network/chat/contents/EntityDataSource.java b/src/main/java/net/minecraft/network/chat/contents/EntityDataSource.java
2023-12-11 00:23:09 +00:00
index 3bec895fecb3521653fb0b88d4a4854fd3766b46..5fd278ac13c02b9d511be22dba9719cb0cb0e17b 100644
2022-07-28 03:57:50 +00:00
--- a/src/main/java/net/minecraft/network/chat/contents/EntityDataSource.java
+++ b/src/main/java/net/minecraft/network/chat/contents/EntityDataSource.java
2023-12-11 00:23:09 +00:00
@@ -8,12 +8,15 @@ import com.mojang.serialization.codecs.RecordCodecBuilder;
import java.util.List;
2023-12-11 00:23:09 +00:00
import java.util.stream.Stream;
import javax.annotation.Nullable;
+
+import me.totalfreedom.scissors.ScissorsConfig;
import net.minecraft.advancements.critereon.NbtPredicate;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.arguments.selector.EntitySelector;
2022-07-28 03:57:50 +00:00
import net.minecraft.commands.arguments.selector.EntitySelectorParser;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.entity.Entity;
2023-12-11 00:23:09 +00:00
+import net.minecraft.world.entity.player.Player;
2022-07-28 03:57:50 +00:00
public record EntityDataSource(String selectorPattern, @Nullable EntitySelector compiledSelector) implements DataSource {
2023-12-11 00:23:09 +00:00
public static final MapCodec<EntityDataSource> SUB_CODEC = RecordCodecBuilder.mapCodec((instance) -> {
@@ -39,7 +42,11 @@ public record EntityDataSource(String selectorPattern, @Nullable EntitySelector
2022-07-28 03:57:50 +00:00
public Stream<CompoundTag> getData(CommandSourceStack source) throws CommandSyntaxException {
if (this.compiledSelector != null) {
List<? extends Entity> list = this.compiledSelector.findEntities(source);
- return list.stream().map(NbtPredicate::getEntityTagToCompare);
2023-12-11 00:23:09 +00:00
+ // Scissors start
+ Stream<? extends Entity> stream = list.stream();
+ if (ScissorsConfig.excludePlayersFromNbtComponents) stream = stream.filter((entity) -> !(entity instanceof Player));
+ return stream.map(NbtPredicate::getEntityTagToCompare);
2023-12-11 00:23:09 +00:00
+ // Scissors end
2022-07-28 03:57:50 +00:00
} else {
return Stream.empty();
}