1
1
package org .hydev .mcpm .client .arguments ;
2
2
3
+ import org .hydev .mcpm .Constants ;
4
+ import org .hydev .mcpm .client .DatabaseManager ;
5
+ import org .hydev .mcpm .client .Downloader ;
3
6
import org .hydev .mcpm .client .arguments .parsers .*;
4
7
import org .hydev .mcpm .client .commands .entries .*;
5
8
import org .hydev .mcpm .client .database .ListAllInteractor ;
9
12
import org .hydev .mcpm .client .database .fetcher .LocalDatabaseFetcher ;
10
13
import org .hydev .mcpm .client .database .searchusecase .SearchInteractor ;
11
14
import org .hydev .mcpm .client .injector .PluginLoader ;
15
+ import org .hydev .mcpm .client .installer .InstallInteractor ;
16
+ import org .hydev .mcpm .client .installer .SpigotPluginDownloader ;
12
17
import org .hydev .mcpm .utils .ColorLogger ;
13
18
14
19
import java .net .URI ;
@@ -28,16 +33,29 @@ private CommandsFactory() { }
28
33
/**
29
34
* Creates a list of general parsers for the ArgsParser class.
30
35
*
36
+ * @param isMinecraft If we're in the minecraft env
31
37
* @return Returns a list of argument parsers that work in any environment (Server & CLI).
32
38
*/
33
- public static List <CommandParser > baseParsers () {
34
- var host = URI .create ("http ://mcpm.hydev.org" );
39
+ public static List <CommandParser > baseParsers (boolean isMinecraft ) {
40
+ var host = URI .create ("https ://mcpm.hydev.org" );
35
41
var fetcher = new LocalDatabaseFetcher (host );
36
- var exportPluginsController = new ExportPluginsController (new ExportInteractor (new LocalPluginTracker ()));
37
- var listController = new ListController (new ListAllInteractor ());
38
- var searchController = new SearchPackagesController (new SearchInteractor (fetcher ));
42
+ var tracker = new LocalPluginTracker ();
43
+ var searcher = new SearchInteractor (fetcher );
44
+ var exportPluginsController = new ExportPluginsController (new ExportInteractor (tracker ));
45
+ var listController = new ListController (new ListAllInteractor (tracker ));
46
+ var searchController = new SearchPackagesController (searcher );
39
47
var mirrorController = new MirrorController (new MirrorSelector ());
40
- var infoController = new InfoController (new LocalPluginTracker ());
48
+ var infoController = new InfoController (tracker );
49
+ PluginLoader pluginLoader = null ;
50
+ if (isMinecraft ) {
51
+ pluginLoader = new PluginLoader ();
52
+ }
53
+ DatabaseManager databaseManager = new DatabaseManager (tracker , searcher );
54
+ System .out .println (isMinecraft );
55
+ var installController = new InstallController (new InstallInteractor (
56
+ new SpigotPluginDownloader (new Downloader (), host .toString ()),
57
+ databaseManager , pluginLoader ));
58
+
41
59
42
60
/*
43
61
* Add general parsers to this list!
@@ -49,7 +67,8 @@ public static List<CommandParser> baseParsers() {
49
67
new ListParser (listController ),
50
68
new SearchParser (searchController ),
51
69
new MirrorParser (mirrorController ),
52
- new InfoParser (infoController )
70
+ new InfoParser (infoController ),
71
+ new InstallParser (installController )
53
72
);
54
73
}
55
74
@@ -76,7 +95,7 @@ public static List<CommandParser> serverParsers() {
76
95
new UnloadParser (unloadController )
77
96
);
78
97
79
- return Stream .concat (baseParsers ().stream (), serverOnly .stream ()).toList ();
98
+ return Stream .concat (baseParsers (true ).stream (), serverOnly .stream ()).toList ();
80
99
}
81
100
82
101
/**
@@ -85,7 +104,7 @@ public static List<CommandParser> serverParsers() {
85
104
* @return An ArgsParser object. Invoke ArgsParser#parse to see more.
86
105
*/
87
106
public static ArgsParser baseArgsParser () {
88
- return new ArgsParser (baseParsers (), ColorLogger .toStdOut ());
107
+ return new ArgsParser (baseParsers (false ), ColorLogger .toStdOut ());
89
108
}
90
109
91
110
/**
0 commit comments