@@ -47,7 +47,7 @@ public enum MinecraftVersion {
47
47
* This constant represents Minecraft (Java Edition) Version 1.20
48
48
* ("The Trails & Tales Update")
49
49
*/
50
- MINECRAFT_1_20 (20 , "1.20.x" ),
50
+ MINECRAFT_1_20 (20 , 0 , 4 , "1.20.x" ),
51
51
52
52
/**
53
53
* This constant represents Minecraft (Java Edition) Version 1.20.5
@@ -71,6 +71,7 @@ public enum MinecraftVersion {
71
71
private final boolean virtual ;
72
72
private final int majorVersion ;
73
73
private final int minorVersion ;
74
+ private final int maxMinorVersion ;
74
75
75
76
/**
76
77
* This constructs a new {@link MinecraftVersion} with the given name.
@@ -86,6 +87,7 @@ public enum MinecraftVersion {
86
87
this .name = name ;
87
88
this .majorVersion = majorVersion ;
88
89
this .minorVersion = -1 ;
90
+ this .maxMinorVersion = -1 ;
89
91
this .virtual = false ;
90
92
}
91
93
@@ -105,6 +107,29 @@ public enum MinecraftVersion {
105
107
this .name = name ;
106
108
this .majorVersion = majorVersion ;
107
109
this .minorVersion = minor ;
110
+ this .maxMinorVersion = -1 ;
111
+ this .virtual = false ;
112
+ }
113
+
114
+ /**
115
+ * This constructs a new {@link MinecraftVersion} with the given name.
116
+ * This constructor forces the {@link MinecraftVersion} to be real.
117
+ * It must be a real version of Minecraft.
118
+ *
119
+ * @param majorVersion
120
+ * The major (minor in semver, major in MC land) version of minecraft as an {@link Integer}
121
+ * @param minor
122
+ * The minor (patch in semver, minor in MC land) version of minecraft as an {@link Integer}
123
+ * @param maxMinorVersion
124
+ * The maximum minor (patch) version of minecraft this version represents
125
+ * @param name
126
+ * The display name of this {@link MinecraftVersion}
127
+ */
128
+ MinecraftVersion (int majorVersion , int minor , int maxMinorVersion , @ Nonnull String name ) {
129
+ this .name = name ;
130
+ this .majorVersion = majorVersion ;
131
+ this .minorVersion = minor ;
132
+ this .maxMinorVersion = maxMinorVersion ;
108
133
this .virtual = false ;
109
134
}
110
135
@@ -122,6 +147,7 @@ public enum MinecraftVersion {
122
147
this .name = name ;
123
148
this .majorVersion = 0 ;
124
149
this .minorVersion = -1 ;
150
+ this .maxMinorVersion = -1 ;
125
151
this .virtual = virtual ;
126
152
}
127
153
@@ -185,7 +211,8 @@ public boolean isMinecraftVersion(int minecraftVersion) {
185
211
public boolean isMinecraftVersion (int minecraftVersion , int patchVersion ) {
186
212
return !isVirtual ()
187
213
&& this .majorVersion == minecraftVersion
188
- && (this .minorVersion == -1 || this .minorVersion >= patchVersion );
214
+ && (this .minorVersion == -1 || this .minorVersion <= patchVersion )
215
+ && (this .maxMinorVersion == -1 || patchVersion <= this .maxMinorVersion );
189
216
}
190
217
191
218
/**
0 commit comments