4
4
import org .hydev .mcpm .client .Downloader ;
5
5
import org .hydev .mcpm .client .arguments .parsers .*;
6
6
import org .hydev .mcpm .client .commands .entries .*;
7
+ import org .hydev .mcpm .client .database .CheckForUpdatesInteractor ;
7
8
import org .hydev .mcpm .client .database .ListAllInteractor ;
8
9
import org .hydev .mcpm .client .database .LocalPluginTracker ;
10
+ import org .hydev .mcpm .client .database .MatchPluginsInteractor ;
9
11
import org .hydev .mcpm .client .database .export .ExportInteractor ;
10
12
import org .hydev .mcpm .client .database .fetcher .LocalDatabaseFetcher ;
11
13
import org .hydev .mcpm .client .database .fetcher .ProgressBarFetcherListener ;
14
16
import org .hydev .mcpm .client .injector .PluginLoader ;
15
17
import org .hydev .mcpm .client .installer .InstallInteractor ;
16
18
import org .hydev .mcpm .client .installer .SpigotPluginDownloader ;
19
+ import org .hydev .mcpm .client .updater .UpdateInteractor ;
17
20
import org .hydev .mcpm .utils .ColorLogger ;
18
21
19
22
import java .util .List ;
@@ -32,24 +35,34 @@ private CommandsFactory() { }
32
35
/**
33
36
* Creates a list of general parsers for the ArgsParser class.
34
37
*
38
+ * @param isMinecraft If we're in the minecraft env
35
39
* @return Returns a list of argument parsers that work in any environment (Server & CLI).
36
40
*/
37
- public static List <CommandParser > baseParsers () {
38
- var fetcherListener = new ProgressBarFetcherListener ();
41
+ public static List <CommandParser > baseParsers (boolean isMinecraft ) {
39
42
var mirror = new MirrorSelector ();
40
43
var fetcher = new LocalDatabaseFetcher (mirror .selectedMirrorSupplier ());
41
44
var tracker = new LocalPluginTracker ();
42
- var searcher = new SearchInteractor (fetcher , fetcherListener );
45
+ var loader = isMinecraft ? new PluginLoader () : null ;
46
+ var listener = new ProgressBarFetcherListener ();
47
+ var searcher = new SearchInteractor (fetcher , listener );
48
+ var installer = new InstallInteractor (
49
+ new SpigotPluginDownloader (new Downloader (), mirror .selectedMirrorSupplier ()),
50
+ new DatabaseManager (tracker , searcher ),
51
+ loader
52
+ );
53
+ var matcher = new MatchPluginsInteractor (fetcher , listener );
54
+ var updateChecker = new CheckForUpdatesInteractor (matcher );
55
+ var updater = new UpdateInteractor (updateChecker , installer , tracker );
56
+
57
+ // Controllers
43
58
var exportPluginsController = new ExportPluginsController (new ExportInteractor (tracker ));
44
59
var listController = new ListController (new ListAllInteractor (tracker ));
45
-
46
60
var searchController = new SearchPackagesController (searcher );
47
61
var mirrorController = new MirrorController (mirror );
48
62
var infoController = new InfoController (tracker );
49
- var installController = new InstallController (new InstallInteractor (
50
- new SpigotPluginDownloader (new Downloader (), mirror .selectedMirrorSupplier ()),
51
- new DatabaseManager (tracker , searcher )));
52
- var refreshController = new RefreshController (fetcher , fetcherListener , mirror );
63
+ var installController = new InstallController (installer );
64
+ var updateController = new UpdateController (updater );
65
+ var refreshController = new RefreshController (fetcher , listener , mirror );
53
66
54
67
/*
55
68
* Add general parsers to this list!
@@ -63,7 +76,8 @@ public static List<CommandParser> baseParsers() {
63
76
new MirrorParser (mirrorController ),
64
77
new InfoParser (infoController ),
65
78
new InstallParser (installController ),
66
- new RefreshParser (refreshController )
79
+ new RefreshParser (refreshController ),
80
+ new UpdateParser (updateController )
67
81
);
68
82
}
69
83
@@ -90,7 +104,7 @@ public static List<CommandParser> serverParsers() {
90
104
new UnloadParser (unloadController )
91
105
);
92
106
93
- return Stream .concat (baseParsers ().stream (), serverOnly .stream ()).toList ();
107
+ return Stream .concat (baseParsers (true ).stream (), serverOnly .stream ()).toList ();
94
108
}
95
109
96
110
/**
@@ -99,7 +113,7 @@ public static List<CommandParser> serverParsers() {
99
113
* @return An ArgsParser object. Invoke ArgsParser#parse to see more.
100
114
*/
101
115
public static ArgsParser baseArgsParser () {
102
- return new ArgsParser (baseParsers (), ColorLogger .toStdOut ());
116
+ return new ArgsParser (baseParsers (false ), ColorLogger .toStdOut ());
103
117
}
104
118
105
119
/**
0 commit comments