Skip to content

Commit a43bd39

Browse files
committed
Fixes
1 parent 9a95978 commit a43bd39

File tree

4 files changed

+42
-27
lines changed

4 files changed

+42
-27
lines changed

config/spotbugs-exclude.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
<FindBugsFilter>
2+
<Match>
3+
<Bug pattern="EXS_EXCEPTION_SOFTENING_NO_CONSTRAINTS"/>
4+
</Match>
5+
6+
<Match>
7+
<Bug pattern="UWF_UNWRITTEN_FIELD"/>
8+
</Match>
9+
210
<Match>
311
<Class name="~.*Test"/>
412

src/main/java/com/therandomlabs/curseapi/minecraft/ForgeSVCMinecraftProvider.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,7 @@ public final class ForgeSVCMinecraftProvider implements CurseAPIProvider {
2424
static final ForgeSVCMinecraft FORGESVC_MINECRAFT =
2525
RetrofitUtils.get("https://addons-ecs.forgesvc.net/").create(ForgeSVCMinecraft.class);
2626

27-
static final SortedSet<MCVersion> versions;
28-
29-
static {
30-
try {
31-
final List<MCVersion> versionList =
32-
RetrofitUtils.execute(FORGESVC_MINECRAFT.getVersions());
33-
34-
for (int i = 0; i < versionList.size(); i++) {
35-
versionList.get(i).setIndex(i);
36-
}
37-
38-
versions = ImmutableSortedSet.copyOf(versionList);
39-
} catch (CurseException ex) {
40-
throw new IllegalStateException("Failed to retrieve Minecraft versions", ex);
41-
}
42-
}
27+
static final SortedSet<MCVersion> versions = getVersions();
4328

4429
private ForgeSVCMinecraftProvider() {}
4530

@@ -50,4 +35,20 @@ private ForgeSVCMinecraftProvider() {}
5035
public SortedSet<? extends CurseGameVersion<?>> gameVersions(int id) {
5136
return id == CurseAPIMinecraft.MINECRAFT_ID ? new TreeSet<>(versions) : null;
5237
}
38+
39+
@SuppressWarnings("PMD.ForLoopCanBeForeach")
40+
private static SortedSet<MCVersion> getVersions() {
41+
try {
42+
final List<MCVersion> versions =
43+
RetrofitUtils.execute(FORGESVC_MINECRAFT.getVersions());
44+
45+
for (int i = 0; i < versions.size(); i++) {
46+
versions.get(i).setIndex(i);
47+
}
48+
49+
return ImmutableSortedSet.copyOf(versions);
50+
} catch (CurseException ex) {
51+
throw new IllegalStateException("Failed to retrieve Minecraft versions", ex);
52+
}
53+
}
5354
}

src/main/java/com/therandomlabs/curseapi/minecraft/MCVersion.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
package com.therandomlabs.curseapi.minecraft;
22

3-
import java.util.SortedSet;
4-
53
import com.therandomlabs.curseapi.game.CurseGameVersion;
64

75
/**
86
* Represents a version of Minecraft supported by CurseForge.
97
*/
108
public final class MCVersion extends CurseGameVersion<MCVersion> {
11-
static SortedSet<MCVersion> versions;
12-
139
private int index;
1410
private String versionString;
1511

1612
/**
1713
* Returns the value returned by {@link #versionString()}.
14+
*
1815
* @return the value returned by {@link #versionString()}}.
1916
*/
2017
@Override
@@ -26,24 +23,24 @@ public String toString() {
2623
* {@inheritDoc}
2724
*/
2825
@Override
29-
public int compareTo(MCVersion version) {
30-
return Integer.compare(version.index, index);
26+
public int gameID() {
27+
return CurseAPIMinecraft.MINECRAFT_ID;
3128
}
3229

3330
/**
3431
* {@inheritDoc}
3532
*/
3633
@Override
37-
public int gameID() {
38-
return CurseAPIMinecraft.MINECRAFT_ID;
34+
public String versionString() {
35+
return versionString;
3936
}
4037

4138
/**
4239
* {@inheritDoc}
4340
*/
4441
@Override
45-
public String versionString() {
46-
return versionString;
42+
public int compareTo(MCVersion version) {
43+
return Integer.compare(version.index, index);
4744
}
4845

4946
//This method is called by ForgeSVCMinecraftProvider.

src/main/java/com/therandomlabs/curseapi/minecraft/MCVersions.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.SortedSet;
44
import java.util.TreeSet;
5+
import java.util.stream.Stream;
56

67
/**
78
* Contains {@link MCVersion} constants that represent all versions of Minecraft supported
@@ -308,7 +309,6 @@ public final class MCVersions {
308309
*/
309310
public static final MCVersion V1_14_4 = get("1.14.4");
310311

311-
312312
private MCVersions() {}
313313

314314
/**
@@ -321,6 +321,15 @@ public static SortedSet<MCVersion> getAll() {
321321
return new TreeSet<>(ForgeSVCMinecraftProvider.versions);
322322
}
323323

324+
/**
325+
* Returns a {@link Stream} for all Minecraft versions supported by CurseForge.
326+
*
327+
* @return a {@link Stream} for all Minecraft versions supported by CurseForge.
328+
*/
329+
public static Stream<MCVersion> streamAll() {
330+
return ForgeSVCMinecraftProvider.versions.stream();
331+
}
332+
324333
private static MCVersion get(String versionString) {
325334
for (MCVersion version : ForgeSVCMinecraftProvider.versions) {
326335
if (versionString.equals(version.versionString())) {

0 commit comments

Comments
 (0)