mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-13 00:37:52 +00:00
1.20.2-pre4
This commit is contained in:
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) { }
|
||||
}
|
||||
Reference in new issue
Block a user