Packet version info now sends a senderIsServer boolean to differentiate between client and server when throwing MismatchedVersionException. Hopefully fixed mod version pattern.
This commit is contained in:
@ -21,7 +21,7 @@ public class ChangeTargetPacket {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void encode(final ChangeTargetPacket packet, final PacketBuffer buffer) {
|
public static void encode(final ChangeTargetPacket packet, final PacketBuffer buffer) {
|
||||||
Network.writeVersionInfo(buffer);
|
Network.writeVersionInfo(buffer, false);
|
||||||
buffer.writeEnum(packet.hand);
|
buffer.writeEnum(packet.hand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ public class ChargeTotemPacket {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void encode(final ChargeTotemPacket packet, final PacketBuffer buffer) {
|
public static void encode(final ChargeTotemPacket packet, final PacketBuffer buffer) {
|
||||||
Network.writeVersionInfo(buffer);
|
Network.writeVersionInfo(buffer, false);
|
||||||
buffer.writeEnum(packet.hand);
|
buffer.writeEnum(packet.hand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ import java.util.regex.Pattern;
|
|||||||
public class Network {
|
public class Network {
|
||||||
public static final String VERSION = TotemOfReviving.MOD_ID + "-net-1";
|
public static final String VERSION = TotemOfReviving.MOD_ID + "-net-1";
|
||||||
private static final Pattern NET_VERSION_PATTERN = Pattern.compile(TotemOfReviving.MOD_ID + "-net-\\d+$");
|
private static final Pattern NET_VERSION_PATTERN = Pattern.compile(TotemOfReviving.MOD_ID + "-net-\\d+$");
|
||||||
private static final Pattern MOD_VERSION_PATTERN = Pattern.compile("^\\d+\\.\\d+\\.\\d+$");
|
private static final Pattern MOD_VERSION_PATTERN = Pattern.compile("Forge-^\\d+\\.\\d+\\.\\d+$-^\\d+\\.\\d+\\.\\d+$");
|
||||||
|
|
||||||
public static SimpleChannel channel;
|
public static SimpleChannel channel;
|
||||||
|
|
||||||
@ -41,21 +41,25 @@ public class Network {
|
|||||||
.add();
|
.add();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void writeVersionInfo(PacketBuffer buffer) {
|
public static void writeVersionInfo(PacketBuffer buffer, boolean senderIsServer) {
|
||||||
|
buffer.writeBoolean(senderIsServer);
|
||||||
buffer.writeUtf(VERSION);
|
buffer.writeUtf(VERSION);
|
||||||
buffer.writeUtf(TotemOfReviving.getVersion());
|
buffer.writeUtf(TotemOfReviving.getVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void checkVersion(PacketBuffer buffer) {
|
public static void checkVersion(PacketBuffer buffer) {
|
||||||
String serverNetVersion = readNetVersion(buffer);
|
boolean senderIsServer = buffer.readBoolean();
|
||||||
String serverModVersion = readModVersion(buffer);
|
String serverNetVersion = (senderIsServer) ? readNetVersion(buffer) : VERSION;
|
||||||
|
String serverModVersion = (senderIsServer) ? readModVersion(buffer) : TotemOfReviving.getVersion();
|
||||||
|
String clientNetVersion = (senderIsServer) ? VERSION : readNetVersion(buffer);
|
||||||
|
String clientModVersion = (senderIsServer) ? TotemOfReviving.getVersion() : readModVersion(buffer);
|
||||||
|
|
||||||
if (!VERSION.equals(serverNetVersion) || !TotemOfReviving.getVersion().equals(serverModVersion)) {
|
if (!serverNetVersion.equals(clientNetVersion) || !serverModVersion.equals(clientModVersion)) {
|
||||||
throw new MismatchedVersionException(
|
throw new MismatchedVersionException(
|
||||||
String.format("The server and client are running different versions of [Micle's Totem of Reviving]." +
|
String.format("The server and client are running different versions of [Micle's Totem of Reviving]." +
|
||||||
"Try updating this mod on either the client and or the server." +
|
"Try updating this mod on either the client and or the server." +
|
||||||
"Client version is %s (%s). Server version is %s (%s)",
|
"Client version is %s (%s). Server version is %s (%s)",
|
||||||
TotemOfReviving.getVersion(), VERSION,
|
clientModVersion, clientNetVersion,
|
||||||
serverModVersion, serverNetVersion)
|
serverModVersion, serverNetVersion)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ public class ReviveTargetPacket {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void encode(final ReviveTargetPacket packet, final PacketBuffer buffer) {
|
public static void encode(final ReviveTargetPacket packet, final PacketBuffer buffer) {
|
||||||
Network.writeVersionInfo(buffer);
|
Network.writeVersionInfo(buffer, false);
|
||||||
buffer.writeEnum(packet.hand);
|
buffer.writeEnum(packet.hand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user