Skip to content

Commit a79661d

Browse files
committed
fix: resolve version parsing issues on older versions of JM
(bug reported via discord)
1 parent 3f1a9bc commit a79661d

File tree

2 files changed

+24
-7
lines changed

2 files changed

+24
-7
lines changed

common/src/main/java/com/funniray/minimap/common/jm/JMHandler.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,18 @@ public void handleAdminSave(MinimapPlayer player, byte[] message, String replyCh
145145

146146
public void handleVersion(MinimapPlayer player, byte[] message, String replyChannel) {
147147
modernList.put(player.getUniqueId(), message.length > 0 && message[0] != 0);
148-
ByteArrayDataInput in = ByteStreams.newDataInput(message);
149148
Gson gson = new Gson();
150-
String payload = gson.toJson(new JMVersion());
149+
JMVersion serverVersion = new JMVersion();
150+
ByteArrayDataInput in = ByteStreams.newDataInput(message);
151+
if (!modern(player)) in.readByte();
152+
153+
String sent = NetworkUtils.readUtf(in);
154+
JMVersion clientVersion = gson.fromJson(sent, JMVersion.class);
155+
if (clientVersion.journeymap_version.major <= 5) {
156+
serverVersion.journeymap_version = new JMVersion.VersionDetails(6,0,0,null);
157+
}
158+
159+
String payload = gson.toJson(serverVersion);
151160
ByteArrayDataOutput out = ByteStreams.newDataOutput();
152161
if (!modern(player)) out.writeByte(0);
153162
NetworkUtils.writeUtf(payload, out);

common/src/main/java/com/funniray/minimap/common/jm/data/JMVersion.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,21 @@ public class JMVersion {
99
public String minecraft_version = JavaMinimapPlugin.getInstance().getServer().getMinecraftVersion().toString();
1010

1111
public static class VersionDetails {
12-
public String full;
13-
public int major = 6;
14-
public int minor = 1;
15-
public int micro = 0;
16-
public String patch = "-beta";
12+
public final String full;
13+
public final int major;
14+
public final int minor;
15+
public final int micro;
16+
public final String patch;
1717

1818
public VersionDetails() {
19+
this(6,1,0,"-beta99");
20+
}
21+
22+
public VersionDetails(int major, int minor, int micro, String patch) {
23+
this.major = major;
24+
this.minor = minor;
25+
this.micro = micro;
26+
this.patch = patch;
1927
this.full = String.format("%d.%d.%d%s",major,minor,micro,patch);
2028
}
2129
}

0 commit comments

Comments
 (0)