soiz1's picture
Upload folder using huggingface_hub
d46f4a3 verified
package net.minecraft.commands.arguments;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import javax.annotation.Nullable;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.chat.MessageSignature;
import net.minecraft.network.chat.SignableCommand;
public record ArgumentSignatures(List<ArgumentSignatures.Entry> entries) {
public static final ArgumentSignatures EMPTY = new ArgumentSignatures(List.of());
private static final int MAX_ARGUMENT_COUNT = 8;
private static final int MAX_ARGUMENT_NAME_LENGTH = 16;
public ArgumentSignatures(FriendlyByteBuf p_231052_) {
this(p_231052_.<Entry, List<Entry>>readCollection(FriendlyByteBuf.limitValue(ArrayList::new, 8), ArgumentSignatures.Entry::new));
}
public void write(FriendlyByteBuf p_231062_) {
p_231062_.writeCollection(this.entries, (p_241214_, p_241215_) -> p_241215_.write(p_241214_));
}
public static ArgumentSignatures signCommand(SignableCommand<?> p_251621_, ArgumentSignatures.Signer p_248653_) {
List<ArgumentSignatures.Entry> list = p_251621_.arguments().stream().map(p_247962_ -> {
MessageSignature messagesignature = p_248653_.sign(p_247962_.value());
return messagesignature != null ? new ArgumentSignatures.Entry(p_247962_.name(), messagesignature) : null;
}).filter(Objects::nonNull).toList();
return new ArgumentSignatures(list);
}
public static record Entry(String name, MessageSignature signature) {
public Entry(FriendlyByteBuf p_241305_) {
this(p_241305_.readUtf(16), MessageSignature.read(p_241305_));
}
public void write(FriendlyByteBuf p_241403_) {
p_241403_.writeUtf(this.name, 16);
MessageSignature.write(p_241403_, this.signature);
}
}
@FunctionalInterface
public interface Signer {
@Nullable
MessageSignature sign(String p_241389_);
}
}