1.20.2-pre4

This commit is contained in:
LexManos committed 2023-09-13 15:15:42 -07:00
1 parent 084effdadf
commit 1f59b3f9fe
16 files changed
+214 -90

No files matched your search

@@ -216,7 +216,7 @@ public class ForgePacketHandler {
var missing = new HashSet<ResourceLocation>();
for (var id : missingMods) {
var key = new ResourceLocation(id, "");
var container = ModList.get().getModContainerById(id).get();
var container = ModList.get().getModContainerById(id).orElse(null);
if (container != null)
mismatched.put(key, new NetworkMismatchData.Version(container.getModInfo().getVersion().toString(), ""));
else
@@ -5,31 +5,25 @@
package net.minecraftforge.network.packets;
import java.util.HashMap;
import java.util.Map;
import org.jetbrains.annotations.NotNull;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.network.NetworkRegistry;
public record ChannelVersions(Map<ResourceLocation, Integer> channels) {
public record ChannelVersions(Map<ResourceLocation, @NotNull Integer> channels) {
public ChannelVersions() {
this(NetworkRegistry.buildChannelVersions());
}
public static ChannelVersions decode(FriendlyByteBuf buf) {
Map<ResourceLocation, Integer> channels = new HashMap<>();
int len = buf.readVarInt();
for (int x = 0; x < len; x++)
channels.put(buf.readResourceLocation(), buf.readVarInt());
return new ChannelVersions(channels);
return new ChannelVersions(buf.readMap(Object2IntOpenHashMap::new, FriendlyByteBuf::readResourceLocation, FriendlyByteBuf::readVarInt));
}
public void encode(FriendlyByteBuf buf) {
buf.writeVarInt(channels.size());
channels.forEach((k, v) -> {
buf.writeResourceLocation(k);
buf.writeVarInt(v);
});
buf.writeMap(channels, FriendlyByteBuf::writeResourceLocation, FriendlyByteBuf::writeVarInt);
}
}
@@ -5,10 +5,11 @@
package net.minecraftforge.network.packets;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.fml.ModList;
import net.minecraftforge.forgespi.language.IModInfo;
/**
* Prefixes S2CModList by sending additional data about the mods installed on the server to the client
@@ -18,25 +19,20 @@ public record ModVersions(Map<String, Info> mods) {
private static final int MAX_LENGTH = 0x100;
public static ModVersions create() {
Map<String, ModVersions.Info> mods = new HashMap<>();
ModList.get().getMods().stream().forEach(mod ->
mods.put(
mod.getModId(),
new Info(mod.getDisplayName(), mod.getVersion().toString())
)
);
return new ModVersions(mods);
return new ModVersions(ModList.get().getMods().stream().collect(Collectors.toMap(
IModInfo::getModId,
mod -> new Info(mod.getDisplayName(), mod.getVersion().toString())
)));
}
public static ModVersions decode(FriendlyByteBuf buf) {
var mods = buf.<String, Info>readMap(
return new ModVersions(buf.readMap(
o -> o.readUtf(MAX_LENGTH),
o -> new Info(
o.readUtf(MAX_LENGTH),
o.readUtf(MAX_LENGTH)
)
);
return new ModVersions(mods);
));
}
public void encode(FriendlyByteBuf output) {
@@ -49,5 +45,5 @@ public record ModVersions(Map<String, Info> mods) {
);
}
public record Info(String name, String version) {}
public record Info(String name, String version) { }
}