MCPcopy Index your code
hub / github.com/WendellCraft/ModpackDebuggerKit / updateHangingLibraries

Method updateHangingLibraries

app.go:842–910  ·  view source on GitHub ↗

--- Hanging Libraries ---

()

Source from the content-addressed store, hash-verified

840// --- Hanging Libraries ---
841
842func (a *App) updateHangingLibraries() {
843 a.mu.Lock()
844 modsDir := a.ProjectData.ModsDir
845 snapshot := a.ProjectData.LatestSnapshot
846 deps := a.ProjectData.Dependencies
847 dismissed := make(map[string]bool)
848 for _, d := range a.ProjectData.DismissedHangingLibs {
849 dismissed[d] = true
850 }
851 a.mu.Unlock()
852
853 if modsDir == "" || snapshot == nil {
854 return
855 }
856
857 entries, err := os.ReadDir(modsDir)
858 if err != nil {
859 return
860 }
861
862 currentMods := make(map[string]bool)
863 for _, e := range entries {
864 if !e.IsDir() && filepath.Ext(e.Name()) == ".jar" {
865 currentMods[e.Name()] = true
866 }
867 }
868
869 allNeededDeps := make(map[string]bool)
870 for mod, depList := range deps {
871 if currentMods[mod] {
872 for _, dep := range depList {
873 allNeededDeps[dep] = true
874 }
875 }
876 }
877
878 var hanging []string
879 for mod, depList := range deps {
880 if !currentMods[mod] {
881 for _, dep := range depList {
882 if !allNeededDeps[dep] && currentMods[dep] && !dismissed[dep] {
883 hanging = append(hanging, dep)
884 }
885 }
886 }
887 }
888
889 hangingSet := make(map[string]bool)
890 for _, h := range hanging {
891 hangingSet[h] = true
892 }
893 var hangingList []string
894 for h := range hangingSet {
895 hangingList = append(hangingList, h)
896 }
897
898 a.mu.Lock()
899 a.HangingLibraries = hangingList

Callers 9

LoadProjectMethod · 0.95
DetectNewModsMethod · 0.95
AddDependencyMethod · 0.95
AddDependencyMultiMethod · 0.95
RemoveDependencyMethod · 0.95
DeleteAllDependenciesMethod · 0.95
modrinthSyncMethod · 0.95

Calls 1

emitLogMethod · 0.95

Tested by

no test coverage detected