diff --git a/enigma-swing/src/main/java/org/quiltmc/enigma/gui/config/Config.java b/enigma-swing/src/main/java/org/quiltmc/enigma/gui/config/Config.java index b613e4d08..00b271e0b 100644 --- a/enigma-swing/src/main/java/org/quiltmc/enigma/gui/config/Config.java +++ b/enigma-swing/src/main/java/org/quiltmc/enigma/gui/config/Config.java @@ -126,8 +126,15 @@ public static Theme.Fonts currentFonts() { public static void insertRecentProject(String jarPath, String mappingsPath) { RecentProject project = new RecentProject(jarPath, mappingsPath); - if (!main().recentProjects.value().contains(project)) { - main().recentProjects.value().add(0, new RecentProject(jarPath, mappingsPath)); + ValueList projects = main().recentProjects.value(); + + // add project, shifting to top if already on the list + projects.remove(project); + projects.add(0, new RecentProject(jarPath, mappingsPath)); + + // remove the oldest project according to max values + if (projects.size() > main().maxRecentProjects.value()) { + projects.remove(projects.size() - 1); } }