mcserver-cli 4.0.0.dev0__tar.gz → 4.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/CHANGELOG.md +22 -3
  2. mcserver_cli-4.2.0/CONTRIBUTING.md +16 -0
  3. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/NOTES.txt +52 -1
  4. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/PKG-INFO +6 -5
  5. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/README.md +5 -4
  6. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/pyproject.toml +5 -0
  7. mcserver_cli-4.2.0/src/mcserver/__init__.py +1 -0
  8. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/cli.py +25 -65
  9. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/__init__.py +12 -12
  10. mcserver_cli-4.2.0/src/mcserver/commands/add.py +232 -0
  11. mcserver_cli-4.0.0.dev0/src/mcserver/commands/initialize_server.py → mcserver_cli-4.2.0/src/mcserver/commands/init.py +39 -15
  12. mcserver_cli-4.2.0/src/mcserver/commands/search.py +183 -0
  13. mcserver_cli-4.2.0/src/mcserver/commands/show.py +105 -0
  14. mcserver_cli-4.0.0.dev0/src/mcserver/commands/start_server.py → mcserver_cli-4.2.0/src/mcserver/commands/start.py +26 -14
  15. mcserver_cli-4.0.0.dev0/src/mcserver/commands/stop_server.py → mcserver_cli-4.2.0/src/mcserver/commands/stop.py +2 -10
  16. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/config.py +8 -3
  17. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/fabricmc/meta.py +1 -1
  18. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/metadata.py +8 -6
  19. mcserver_cli-4.2.0/src/mcserver/modrinth/apis/__init__.py +9 -0
  20. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/apis/get_project_informations.py +33 -35
  21. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/apis/get_project_versions.py +82 -40
  22. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/apis/search_projects.py +64 -27
  23. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/project_records.py +39 -28
  24. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/shared.py +22 -20
  25. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/slug_index.py +3 -7
  26. mcserver_cli-4.2.0/src/mcserver/modrinth/typings/__init__.py +50 -0
  27. mcserver_cli-4.0.0.dev0/src/mcserver/modrinth/typings/project_informations.py → mcserver_cli-4.2.0/src/mcserver/modrinth/typings/project_information.py +5 -3
  28. mcserver_cli-4.2.0/src/mcserver/modrinth/typings/project_version.py +90 -0
  29. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/mysterious.py +1 -1
  30. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/networking.py +3 -0
  31. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/paths.py +2 -1
  32. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/resolver.py +49 -30
  33. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/shared.py +29 -7
  34. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/zip_app.py +2 -1
  35. mcserver_cli-4.0.0.dev0/CONTRIBUTING.md +0 -9
  36. mcserver_cli-4.0.0.dev0/a.py +0 -72
  37. mcserver_cli-4.0.0.dev0/src/mcserver/__init__.py +0 -1
  38. mcserver_cli-4.0.0.dev0/src/mcserver/commands/add_projects.py +0 -148
  39. mcserver_cli-4.0.0.dev0/src/mcserver/commands/search_projects.py +0 -109
  40. mcserver_cli-4.0.0.dev0/src/mcserver/commands/show_projects.py +0 -29
  41. mcserver_cli-4.0.0.dev0/src/mcserver/modrinth/api.py +0 -768
  42. mcserver_cli-4.0.0.dev0/src/mcserver/modrinth/apis/__init__.py +0 -9
  43. mcserver_cli-4.0.0.dev0/src/mcserver/modrinth/project_records/metadata.py +0 -0
  44. mcserver_cli-4.0.0.dev0/src/mcserver/modrinth/project_records/relationships.py +0 -205
  45. mcserver_cli-4.0.0.dev0/src/mcserver/modrinth/project_records/shared.py +0 -8
  46. mcserver_cli-4.0.0.dev0/src/mcserver/modrinth/typings/__init__.py +0 -38
  47. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/.gitignore +0 -0
  48. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/LICENSE +0 -0
  49. {mcserver_cli-4.0.0.dev0/src/mcserver → mcserver_cli-4.2.0/legacy}/mcserver_v2.0.0.py +0 -0
  50. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/__main__.py +0 -0
  51. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/__main__.py +0 -0
  52. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/app.py +0 -0
  53. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/caching.py +0 -0
  54. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/import_setup.py +0 -0
  55. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/list_projects.py +0 -0
  56. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/op_grant.py +0 -0
  57. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/op_list.py +0 -0
  58. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/op_revoke.py +0 -0
  59. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/print_help.py +0 -0
  60. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/remove_projects.py +0 -0
  61. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/server_status.py +0 -0
  62. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/update_projects.py +0 -0
  63. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/whitelist_add.py +0 -0
  64. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/whitelist_list.py +0 -0
  65. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/commands/whitelist_remove.py +0 -0
  66. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/constants.py +0 -0
  67. {mcserver_cli-4.0.0.dev0/src/mcserver/legacyfabric → mcserver_cli-4.2.0/src/mcserver/legacy_fabric}/meta.py +0 -0
  68. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/minecraft/api.py +0 -0
  69. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/minecraft/player_identity.py +0 -0
  70. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/constants.py +0 -0
  71. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/modpack.py +0 -0
  72. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/paths.py +0 -0
  73. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/projects.py +0 -0
  74. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/typings/search_projects.py +0 -0
  75. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/modrinth/typings/shared.py +0 -0
  76. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/mojang/eula.py +0 -0
  77. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/mojang/manifest.py +0 -0
  78. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/papermc/api.py +0 -0
  79. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/purpurmc/api.py +0 -0
  80. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/quiltmc/meta.py +0 -0
  81. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/server_files/banned_ips.py +0 -0
  82. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/server_files/banned_players.py +0 -0
  83. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/server_files/ops.py +0 -0
  84. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/server_files/properties.py +0 -0
  85. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/server_files/usercaches.py +0 -0
  86. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/server_files/whitelist.py +0 -0
  87. {mcserver_cli-4.0.0.dev0 → mcserver_cli-4.2.0}/src/mcserver/state.py +0 -0
@@ -5,16 +5,32 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [Unreleased]
8
+ ## [4.2.0] - 2026-11-02
9
+
10
+ ### Changed
11
+
12
+ - Reorder the `search` error message between 0 result and page is smaller than asked
13
+
14
+ ## [4.1.0] - 2026-11-02
15
+
16
+ ### Fixed
17
+
18
+ - `search` now say "No environment"
19
+ - `search` correctly use the appropiate project type for the homepage
20
+
21
+ ## [4.0.0] - 2026-10-31
9
22
 
10
23
  ### Added
11
24
 
25
+ - Working `show` command
26
+ - Working `search` command
12
27
  - New `--game-version` and `--loader` options to the `search` command
13
28
  - New `--search-sort` and `--search-limit` options to the `init` command
14
- -
15
29
 
16
30
  ### Changed
17
31
 
32
+ - Moved `slug_index.json` to global `.mcserver` cache
33
+ - More information that the `show` command output
18
34
  - Better `search` info message
19
35
  - slug_index.json is now a global cache
20
36
 
@@ -212,7 +228,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
212
228
  - Better mod conflict error
213
229
  - Faster mod resolving
214
230
 
215
- [unreleased]: https://github.com/Othecat35/MCServer/compare/v3.0.0...HEAD
231
+ [unreleased]: https://github.com/Othecat35/MCServer/compare/v4.2.0...HEAD
232
+ [4.2.0]: https://github.com/Othecat35/MCServer/compare/v4.0.0...v4.1.0
233
+ [4.1.0]: https://github.com/Othecat35/MCServer/compare/v4.0.0...v4.1.0
234
+ [4.0.0]: https://github.com/Othecat35/MCServer/compare/v3.0.0...v4.0.0
216
235
  [3.0.0]: https://github.com/Othecat35/MCServer/compare/v2.0.0...v3.0.0
217
236
  [2.0.0]: https://github.com/Othecat35/MCServer/compare/v1.13.16...v2.0.0
218
237
  [1.13.16]: https://github.com/Othecat35/MCServer/compare/v1.13.15...v1.13.16
@@ -0,0 +1,16 @@
1
+ # License
2
+
3
+ By submitting a pull request, you agree that your contribution is licensed under the MIT License.
4
+
5
+ # Development
6
+
7
+ - Python >= 3.12 (3.14 is recommended)
8
+ - Install with `pip install -e .`
9
+ - Use `ruff format` to reformat code
10
+
11
+ # Release
12
+
13
+ 1. Bump version in `src/mcserver/__init__.py`
14
+ 2. `python zip_app.py`
15
+ 3. Tag: `git tag vX.Y.Z && git push --tags`
16
+ 4. Create GitHub release, attach `dist/mcserver`
@@ -1,3 +1,6 @@
1
+ Pls don't feed my creation to AI ;>
2
+
3
+
1
4
  A file where I dumped ideas for this project.
2
5
 
3
6
  CLI Commands:
@@ -183,7 +186,9 @@ check_dependency_conflicts: no
183
186
  resolve_dependencies: ok... what are dependencies of mod b?
184
187
  (some dialogue later)
185
188
  resolve_dependencies: ok, there's no more dependency. here you go "return the list of dependencies"
186
- user: why are there 29 mods including dependencies 0_0
189
+ user: why are there 29 mods including dependencies 0_0 (basucally the resolver works)
190
+
191
+ on second thought, the caller is the one that handle conflict.
187
192
 
188
193
  thx chatgpt but I can't prove it yet
189
194
 
@@ -199,7 +204,15 @@ thx chatgpt but I can't prove it yet
199
204
  - Review codes, especially TypedDict, because why not
200
205
  - Avoid making myself suffer in this project, potentially abandoning this cool project
201
206
  - I hate CurseForge personally.
207
+
208
+
209
+
202
210
  - And yet I still have no friend (to talk about my weird hobby of computer, including this)
211
+
212
+ - Oh hi Finjer! idk if you are reading this, cool. so uh... idk I added stuff I guess, or remove stuff.
213
+
214
+
215
+
203
216
  - Add command such as 'whitelist add/remove/list', 'ban/unban/ban-list', and probably 'op/deop <player> <level>'
204
217
 
205
218
  MCServer™ Naming Convention: (the Trademark is just a joke)
@@ -340,3 +353,41 @@ make a visualize command to visualize installed projects that output to graphviz
340
353
  we should merge the metadata.json and relationships.json back into one file :o
341
354
 
342
355
  look at myterious.py, idk why yiu thought it would be a good idea to make it more fun, and dynamic even.
356
+ mcserver export --client-setup seems nice
357
+ mcserver add thdilos-fox-origin -y is better
358
+ mcserver add jade --include-optional make sense, but for specifically requested mod that is client_only_server_optional, include them. otherwise, put them into "suggested" mods.
359
+
360
+ yo the get_project_informations() is broken because moderator_message can be null
361
+ as for every API interface/client, we can instead return parsed (for those who we already know the structure), and then another, extra (just a dict[str, Any]). call the new typeddict, *Data.
362
+
363
+ About lazy loading imports... what if I make it so that imports that are required regardless, just
364
+ import it on the module instead? because if you do import it, you must have a reason to do so. Like,
365
+ you don't import a module and not use it at all, right? so just move the imports outside the function.
366
+ init.py:
367
+ import argparse
368
+
369
+ def init(args: argparse.Namespace):
370
+ import logging
371
+ ...
372
+
373
+
374
+ init.py:
375
+ import argparse
376
+ import logging
377
+
378
+ def init(args: argparse.Namespace):
379
+ ...
380
+
381
+ so, if you import init, you of course want to run init() right? so lazy-laoding it is not just useless,
382
+ it also make the code a bit more unreadable.
383
+ When do we lazy-loading stuff? imports that aren't always needed. Like command invocation in cli.py
384
+ with match case, because you don't need any to print the help message (except the help command itself),
385
+ or if you did, like init, you don't neccesearily need to import the stop command right? and also other
386
+ case is in init.py and start.pt. it import the appropriate loader and not other.
387
+
388
+ hmmm yes, global .mcserver config, just like cache.
389
+ it can be the default config of all your new Minecraft server derived from
390
+ and yea
391
+
392
+
393
+ 2026-11-01, let's start not using AI?
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: mcserver-cli
3
- Version: 4.0.0.dev0
3
+ Version: 4.2.0
4
4
  Summary: A CLI tool to manage Minecraft: Java Edition servers.
5
5
  Project-URL: Homepage, https://github.com/Othecat35/MCServer
6
6
  Project-URL: Repository, https://github.com/Othecat35/MCServer.git
@@ -44,14 +44,15 @@ Supported platforms:
44
44
  ## Usage
45
45
  - Initialize a server: `mcserver init [options]`
46
46
  - List operator players: `mcserver op list`
47
+ - Show information about projects: `mcserver show <projects>`
47
48
  - Start the server: `mcserver start`
48
- - Stop the server: `mcserver stop`
49
+ - Stop the server: `mcserver stop [--force-stop]`
49
50
  - List whitelisted players: `mcserver whitelist list`
50
51
 
51
52
  ### Example
52
- - Create a 1.20.1 Fabric (0.19.5) server on current directory
53
+ - Create and start a Fabric 1.20.1 server on current directory
53
54
  ```bash
54
- mcserver init --mc-version=1.20.1 --loader=fabric --loader-version=0.19.5
55
+ mcserver init --game-version=1.20.1 --loader=fabric
55
56
  mcserver start
56
57
  ```
57
58
 
@@ -60,11 +61,11 @@ mcserver start
60
61
  mcserver op list
61
62
  mcserver whitelist list
62
63
  ```
64
+
63
65
  - Stop (sigterm) a server on current directory
64
66
  ```bash
65
67
  mcserver stop
66
68
  ```
67
69
 
68
-
69
70
  ## Note
70
71
  This is a **Personal Project**, things may be unstable.
@@ -31,14 +31,15 @@ Supported platforms:
31
31
  ## Usage
32
32
  - Initialize a server: `mcserver init [options]`
33
33
  - List operator players: `mcserver op list`
34
+ - Show information about projects: `mcserver show <projects>`
34
35
  - Start the server: `mcserver start`
35
- - Stop the server: `mcserver stop`
36
+ - Stop the server: `mcserver stop [--force-stop]`
36
37
  - List whitelisted players: `mcserver whitelist list`
37
38
 
38
39
  ### Example
39
- - Create a 1.20.1 Fabric (0.19.5) server on current directory
40
+ - Create and start a Fabric 1.20.1 server on current directory
40
41
  ```bash
41
- mcserver init --mc-version=1.20.1 --loader=fabric --loader-version=0.19.5
42
+ mcserver init --game-version=1.20.1 --loader=fabric
42
43
  mcserver start
43
44
  ```
44
45
 
@@ -47,11 +48,11 @@ mcserver start
47
48
  mcserver op list
48
49
  mcserver whitelist list
49
50
  ```
51
+
50
52
  - Stop (sigterm) a server on current directory
51
53
  ```bash
52
54
  mcserver stop
53
55
  ```
54
56
 
55
-
56
57
  ## Note
57
58
  This is a **Personal Project**, things may be unstable.
@@ -28,3 +28,8 @@ packages = ["src/mcserver"]
28
28
 
29
29
  [tool.hatch.version]
30
30
  path = "src/mcserver/__init__.py"
31
+
32
+ [tool.ruff.lint]
33
+ ignore = [
34
+ "LOG015"
35
+ ]
@@ -0,0 +1 @@
1
+ __version__ = "4.2.0"
@@ -1,23 +1,24 @@
1
1
  def main() -> int:
2
2
  import argparse
3
3
  import sys
4
+ from types import FunctionType
4
5
 
5
6
  from . import __version__
6
7
  from .modrinth.shared import search_sort_index
7
8
  from .shared import loader_list
8
9
 
9
- def bound_int(min_integer: int, max_integer: int | None = None):
10
- def parse(cli_string: str):
10
+ def bound_int(min_integer: int, max_integer: int | None = None) -> FunctionType:
11
+ def parse(cli_string: str) -> int:
11
12
  try:
12
13
  integer = int(cli_string)
13
- except TypeError:
14
+ except ValueError:
14
15
  raise argparse.ArgumentTypeError(f"{cli_string} is not an integer")
15
16
 
16
- if integer <= min_integer:
17
+ if integer < min_integer:
17
18
  raise argparse.ArgumentTypeError(
18
19
  f"{integer} must be higher than or equal to {min_integer}"
19
20
  )
20
- if max_integer is not None and integer >= max_integer:
21
+ if max_integer is not None and integer > max_integer:
21
22
  raise argparse.ArgumentTypeError(
22
23
  f"{integer} must be between {min_integer} and {max_integer} (inclusive)"
23
24
  )
@@ -30,9 +31,9 @@ def main() -> int:
30
31
 
31
32
  match command_name:
32
33
  case "add":
33
- from .commands import add_projects
34
+ from .commands import add
34
35
 
35
- return add_projects(args)
36
+ return add(args)
36
37
  case "import":
37
38
  from .commands import import_setup
38
39
 
@@ -42,9 +43,9 @@ def main() -> int:
42
43
 
43
44
  return print_help(args)
44
45
  case "init":
45
- from .commands import initialize_server
46
+ from .commands import init
46
47
 
47
- return initialize_server(args)
48
+ return init(args)
48
49
  case "list":
49
50
  from .commands import list_projects
50
51
 
@@ -66,25 +67,25 @@ def main() -> int:
66
67
 
67
68
  return remove_projects(args)
68
69
  case "search":
69
- from .commands import search_projects
70
+ from .commands import search
70
71
 
71
- return search_projects(args)
72
+ return search(args)
72
73
  case "show":
73
- from .commands import show_projects
74
+ from .commands import show
74
75
 
75
- return show_projects(args)
76
+ return show(args)
76
77
  case "start":
77
- from .commands import start_server
78
+ from .commands import start
78
79
 
79
- return start_server(args)
80
+ return start(args)
80
81
  case "status":
81
82
  from .commands import server_status
82
83
 
83
84
  return server_status(args)
84
85
  case "stop":
85
- from .commands import stop_server
86
+ from .commands import stop
86
87
 
87
- return stop_server(args)
88
+ return stop(args)
88
89
  case "update":
89
90
  from .commands import update_projects
90
91
 
@@ -134,28 +135,6 @@ def main() -> int:
134
135
 
135
136
  commands = parser.add_subparsers(title="Commands")
136
137
 
137
- # 'add' command
138
- add_command = commands.add_parser(
139
- "add",
140
- help="Add Modrinth projects to the server",
141
- description="Add Modrinth mods/plugins to the server",
142
- )
143
-
144
- add_command.set_defaults(command_name="add")
145
- add_command.add_argument(
146
- "projects", nargs="+", type=str, help="Modrinth project slugs or IDs"
147
- )
148
-
149
- # 'import' command
150
- import_command = commands.add_parser(
151
- "import",
152
- help="Import a Modrinth modpack",
153
- description="Import a Modrinth modpack from a file.",
154
- )
155
-
156
- import_command.set_defaults(command_name="import")
157
- import_command.add_argument("file", type=str, help="The Modrinth modpack file")
158
-
159
138
  # 'init' command
160
139
  init_command = commands.add_parser(
161
140
  "init",
@@ -193,15 +172,15 @@ def main() -> int:
193
172
  init_command.add_argument(
194
173
  "--min-ram",
195
174
  default=512,
196
- type=bound_int(1024),
197
- help="Minimum RAM for the server (in MebiBytes) (minimum value: 1024)",
175
+ type=bound_int(512),
176
+ help="Minimum RAM for the server (in MebiBytes) (minimum value: 512)",
198
177
  metavar="Size",
199
178
  )
200
179
 
201
180
  init_command.add_argument(
202
181
  "--max-ram",
203
- default=bound_int(1024),
204
- type=int,
182
+ default=1024,
183
+ type=bound_int(1024),
205
184
  help="Maximum RAM for the server (in MebiBytes) (minimum value: 1024)",
206
185
  metavar="Size",
207
186
  )
@@ -222,16 +201,9 @@ def main() -> int:
222
201
  choices=search_sort_index,
223
202
  help="Default search sort index",
224
203
  metavar="Index",
225
- dest="search_limit",
226
- )
227
-
228
- # 'list' command
229
- list_command = commands.add_parser(
230
- "list", help="List all added projects", description="List all added projects."
204
+ dest="sort_index",
231
205
  )
232
206
 
233
- list_command.set_defaults(command_name="list")
234
-
235
207
  # 'op' command
236
208
  op_command = commands.add_parser(
237
209
  "op", help="Manage operator players", description="Manage the operator status."
@@ -248,16 +220,6 @@ def main() -> int:
248
220
 
249
221
  op_list_command.set_defaults(command_name="op_list")
250
222
 
251
- # 'remove' command
252
- remove_command = commands.add_parser(
253
- "remove", help="Remove projects", description="Remove projects"
254
- )
255
-
256
- remove_command.set_defaults(command_name="remove")
257
- remove_command.add_argument(
258
- "projects", nargs="+", type=str, help="Modrinth project slugs or IDs"
259
- )
260
-
261
223
  # 'search' command
262
224
  search_command = commands.add_parser(
263
225
  "search",
@@ -272,7 +234,6 @@ def main() -> int:
272
234
 
273
235
  search_command.add_argument(
274
236
  "--limit",
275
- default=20,
276
237
  type=bound_int(1, 100),
277
238
  help="Search projects per page (value between (inclusive): 1-100)",
278
239
  metavar="Number",
@@ -289,13 +250,11 @@ def main() -> int:
289
250
  )
290
251
 
291
252
  search_command.add_argument(
292
- "--sort",
293
- default="relevance",
253
+ "--sort-index",
294
254
  type=str,
295
255
  choices=search_sort_index,
296
256
  help="Sort by index",
297
257
  metavar="Index",
298
- dest="sort_index",
299
258
  )
300
259
 
301
260
  search_command.add_argument(
@@ -348,6 +307,7 @@ def main() -> int:
348
307
 
349
308
  stop_command.set_defaults(command_name="stop")
350
309
 
310
+ # update is not going to be implemented in this version
351
311
  # 'whitelist' command
352
312
  whitelist_command = commands.add_parser(
353
313
  "whitelist",
@@ -1,37 +1,37 @@
1
- from .add_projects import main as add_projects
1
+ from .add import add
2
2
  from .import_setup import main as import_setup
3
- from .initialize_server import main as initialize_server
3
+ from .init import init
4
4
  from .list_projects import main as list_projects
5
5
  from .op_grant import main as op_grant
6
6
  from .op_list import main as op_list
7
7
  from .op_revoke import main as op_revoke
8
8
  from .print_help import main as print_help
9
9
  from .remove_projects import main as remove_projects
10
- from .search_projects import main as search_projects
10
+ from .search import search
11
11
  from .server_status import main as server_status
12
- from .show_projects import main as show_projects
13
- from .start_server import main as start_server
14
- from .stop_server import main as stop_server
12
+ from .show import show
13
+ from .start import start
14
+ from .stop import stop
15
15
  from .update_projects import main as update_projects
16
16
  from .whitelist_add import main as whitelist_add
17
17
  from .whitelist_list import main as whitelist_list
18
18
  from .whitelist_remove import main as whitelist_remove
19
19
 
20
20
  __all__ = [
21
- "add_projects",
21
+ "add",
22
22
  "import_setup",
23
- "initialize_server",
23
+ "init",
24
24
  "list_projects",
25
25
  "op_grant",
26
26
  "op_list",
27
27
  "op_revoke",
28
28
  "print_help",
29
29
  "remove_projects",
30
- "search_projects",
30
+ "search",
31
31
  "server_status",
32
- "show_projects",
33
- "start_server",
34
- "stop_server",
32
+ "show",
33
+ "start",
34
+ "stop",
35
35
  "update_projects",
36
36
  "whitelist_add",
37
37
  "whitelist_list",