|
|
|
@ -12,7 +12,7 @@ import java.util.regex.Pattern;
|
|
|
|
|
public class Network {
|
|
|
|
|
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 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;
|
|
|
|
|
|
|
|
|
@ -41,21 +41,25 @@ public class Network {
|
|
|
|
|
.add();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void writeVersionInfo(PacketBuffer buffer) {
|
|
|
|
|
public static void writeVersionInfo(PacketBuffer buffer, boolean senderIsServer) {
|
|
|
|
|
buffer.writeBoolean(senderIsServer);
|
|
|
|
|
buffer.writeUtf(VERSION);
|
|
|
|
|
buffer.writeUtf(TotemOfReviving.getVersion());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void checkVersion(PacketBuffer buffer) {
|
|
|
|
|
String serverNetVersion = readNetVersion(buffer);
|
|
|
|
|
String serverModVersion = readModVersion(buffer);
|
|
|
|
|
boolean senderIsServer = buffer.readBoolean();
|
|
|
|
|
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(
|
|
|
|
|
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." +
|
|
|
|
|
"Client version is %s (%s). Server version is %s (%s)",
|
|
|
|
|
TotemOfReviving.getVersion(), VERSION,
|
|
|
|
|
clientModVersion, clientNetVersion,
|
|
|
|
|
serverModVersion, serverNetVersion)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|