@powernukkitx/cli 0.0.2 → 1.0.0
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.
- package/README.md +203 -177
- package/dist/bundle.js +3 -18856
- package/dist/cli.js +46 -0
- package/dist/commands/backup.d.ts +2 -1
- package/dist/commands/backup.js +21 -71
- package/dist/commands/cfg.d.ts +2 -0
- package/dist/commands/cfg.js +61 -0
- package/dist/commands/config.js +52 -105
- package/dist/commands/console.d.ts +2 -0
- package/dist/commands/console.js +99 -0
- package/dist/commands/doctor.d.ts +2 -1
- package/dist/commands/doctor.js +87 -108
- package/dist/commands/info.d.ts +2 -1
- package/dist/commands/info.js +39 -33
- package/dist/commands/init.d.ts +2 -4
- package/dist/commands/init.js +58 -65
- package/dist/commands/lang.d.ts +2 -0
- package/dist/commands/lang.js +28 -0
- package/dist/commands/logs.d.ts +2 -0
- package/dist/commands/logs.js +61 -0
- package/dist/commands/menu.js +86 -0
- package/dist/commands/plugin/index.d.ts +2 -0
- package/dist/commands/plugin/index.js +13 -0
- package/dist/commands/plugin/info.d.ts +2 -0
- package/dist/commands/plugin/info.js +40 -0
- package/dist/commands/plugin/install.d.ts +2 -0
- package/dist/commands/plugin/install.js +57 -0
- package/dist/commands/plugin/installed.d.ts +2 -0
- package/dist/commands/plugin/installed.js +42 -0
- package/dist/commands/plugin/list.d.ts +2 -0
- package/dist/commands/plugin/list.js +49 -0
- package/dist/commands/plugin/remove.d.ts +2 -0
- package/dist/commands/plugin/remove.js +45 -0
- package/dist/commands/plugin/search.d.ts +2 -0
- package/dist/commands/plugin/search.js +12 -0
- package/dist/commands/plugin/update.d.ts +2 -0
- package/dist/commands/plugin/update.js +53 -0
- package/dist/commands/plugin.d.ts +1 -12
- package/dist/commands/plugin.js +1 -385
- package/dist/commands/start.d.ts +2 -7
- package/dist/commands/start.js +61 -94
- package/dist/commands/stop.d.ts +2 -0
- package/dist/commands/stop.js +27 -0
- package/dist/commands/update.d.ts +2 -5
- package/dist/commands/update.js +30 -50
- package/dist/commands/use.d.ts +2 -0
- package/dist/commands/use.js +40 -0
- package/dist/core/config.d.ts +13 -0
- package/dist/core/config.js +31 -0
- package/dist/core/network.d.ts +13 -0
- package/dist/core/network.js +139 -0
- package/dist/core/output.d.ts +33 -0
- package/dist/core/output.js +75 -0
- package/dist/core/process.d.ts +10 -0
- package/dist/core/process.js +53 -0
- package/dist/i18n/en.json +174 -0
- package/dist/i18n/fr.json +174 -0
- package/dist/i18n/index.js +58 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -260
- package/dist/infra/http.js +121 -0
- package/dist/infra/paths.js +20 -0
- package/dist/infra/store.js +27 -0
- package/dist/lang/en.json +116 -148
- package/dist/lang/fr.json +115 -147
- package/dist/main.d.ts +2 -0
- package/dist/main.js +28 -0
- package/dist/services/backup.js +40 -0
- package/dist/services/plugins.js +111 -0
- package/dist/services/process.js +43 -0
- package/dist/services/release.js +38 -0
- package/dist/services/server.js +89 -0
- package/dist/ui/output.js +71 -0
- package/dist/ui/prompts.js +30 -0
- package/dist/ui/theme.js +18 -0
- package/dist/utils/api.d.ts +3 -12
- package/dist/utils/api.js +7 -57
- package/dist/utils/github.d.ts +3 -10
- package/dist/utils/github.js +27 -154
- package/dist/utils/server.d.ts +2 -2
- package/dist/utils/server.js +17 -24
- package/package.json +15 -32
package/README.md
CHANGED
|
@@ -1,177 +1,203 @@
|
|
|
1
|
-
# pnx-cli
|
|
2
|
-
|
|
3
|
-
PowerNukkitX CLI
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- [
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
## Commandes
|
|
52
|
-
|
|
53
|
-
###
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
pnx
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
pnx
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
1
|
+
# pnx-cli
|
|
2
|
+
|
|
3
|
+
**PowerNukkitX CLI** — outil en ligne de commande pour gérer un serveur **Minecraft Bedrock** propulsé par [PowerNukkitX](https://github.com/PowerNukkitX/PowerNukkitX).
|
|
4
|
+
|
|
5
|
+
Créez, démarrez, mettez à jour et diagnostiquez votre serveur, gérez les plugins depuis la marketplace, le tout avec une interface soignée et un menu interactif — en français ou en anglais.
|
|
6
|
+
|
|
7
|
+
## Sommaire
|
|
8
|
+
|
|
9
|
+
- [Installation](#installation)
|
|
10
|
+
- [Prérequis](#prérequis)
|
|
11
|
+
- [Démarrage rapide](#démarrage-rapide)
|
|
12
|
+
- [Commandes](#commandes)
|
|
13
|
+
- [Mode interactif](#mode-interactif)
|
|
14
|
+
- [Options globales](#options-globales)
|
|
15
|
+
- [Architecture](#architecture)
|
|
16
|
+
- [Développement](#développement)
|
|
17
|
+
- [Exécutables autonomes](#exécutables-autonomes-sea)
|
|
18
|
+
- [Liens](#liens-utiles)
|
|
19
|
+
- [Licence](#licence)
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install -g @powernukkitx/cli
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
La commande `pnx` devient alors disponible.
|
|
28
|
+
|
|
29
|
+
Alternativement, téléchargez un exécutable autonome (voir [Exécutables autonomes](#exécutables-autonomes-sea)) — aucun Node.js requis pour l'utiliser.
|
|
30
|
+
|
|
31
|
+
## Prérequis
|
|
32
|
+
|
|
33
|
+
- **Node.js 20.12+** (pour l'installation via npm ; inutile pour les binaires autonomes)
|
|
34
|
+
- **Java 21+** pour lancer le serveur ([Adoptium Temurin](https://adoptium.net/) recommandé)
|
|
35
|
+
|
|
36
|
+
## Démarrage rapide
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Menu interactif contextuel
|
|
40
|
+
pnx
|
|
41
|
+
|
|
42
|
+
# Créer un serveur puis le démarrer
|
|
43
|
+
pnx init --dir ./pnx-server
|
|
44
|
+
pnx start --memory 4G
|
|
45
|
+
|
|
46
|
+
# Aide
|
|
47
|
+
pnx --help
|
|
48
|
+
pnx <commande> --help
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Commandes
|
|
52
|
+
|
|
53
|
+
### `init` — créer un serveur
|
|
54
|
+
|
|
55
|
+
Télécharge le dernier `powernukkitx.jar` et les scripts de démarrage.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pnx init --dir ./pnx-server
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
| Option | Description |
|
|
62
|
+
|---|---|
|
|
63
|
+
| `--dir <path>` | Dossier cible (sinon demandé) |
|
|
64
|
+
| `--dev` | Version de développement |
|
|
65
|
+
|
|
66
|
+
### `start` — démarrer le serveur
|
|
67
|
+
|
|
68
|
+
Vérifie Java, construit les arguments JVM optimisés (ZGC générationnel, UTF-8) et lance le serveur.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
pnx start --memory 4G --restart
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
| Option | Description |
|
|
75
|
+
|---|---|
|
|
76
|
+
| `--dir <path>` | Dossier du serveur |
|
|
77
|
+
| `--memory <taille>` | Mémoire allouée, ex. `2G`, `4G` (défaut `2G`) |
|
|
78
|
+
| `--restart` | Redémarrage automatique en cas de crash |
|
|
79
|
+
| `--dry-run` | Affiche la commande sans l'exécuter |
|
|
80
|
+
|
|
81
|
+
### `stop` — arrêter le serveur
|
|
82
|
+
|
|
83
|
+
Arrête le serveur démarré via son PID mémorisé.
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
pnx stop
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### `update` — mettre à jour le core
|
|
90
|
+
|
|
91
|
+
Sauvegarde l'ancien jar en `.old` puis télécharge la dernière version.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pnx update --force
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
| Option | Description |
|
|
98
|
+
|---|---|
|
|
99
|
+
| `--force` | Force le re-téléchargement (ignore le cache) |
|
|
100
|
+
| `--dev` | Version de développement |
|
|
101
|
+
|
|
102
|
+
### `plugin` — gérer les plugins
|
|
103
|
+
|
|
104
|
+
Marketplace officielle + suivi local des versions installées.
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
pnx plugin list # catalogue
|
|
108
|
+
pnx plugin search essentials # recherche
|
|
109
|
+
pnx plugin info <slug> # fiche détaillée
|
|
110
|
+
pnx plugin install <slug|url.jar> # installer (marketplace ou URL .jar)
|
|
111
|
+
pnx plugin installed # plugins locaux
|
|
112
|
+
pnx plugin update [slug] # mettre à jour
|
|
113
|
+
pnx plugin remove [nom] # supprimer
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Sans argument, `install`, `update` et `remove` proposent une sélection interactive.
|
|
117
|
+
|
|
118
|
+
### Diagnostics & utilitaires
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
pnx doctor # Java, RAM, disque, port 19132, plugins/mondes
|
|
122
|
+
pnx info # état, chemin, plugins, mondes, RAM
|
|
123
|
+
pnx backup # sauvegarde horodatée du serveur
|
|
124
|
+
pnx config # affiche pnx.yml / server.properties (coloré)
|
|
125
|
+
pnx use ./serveur # définit le serveur par défaut
|
|
126
|
+
pnx logs # derniers logs (avec suivi live)
|
|
127
|
+
pnx console # console RCON attachée au serveur
|
|
128
|
+
pnx lang --set fr # langue (fr / en)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`doctor` et `info` acceptent `--json` pour une sortie machine.
|
|
132
|
+
|
|
133
|
+
## Mode interactif
|
|
134
|
+
|
|
135
|
+
Lancée sans sous-commande, `pnx` ouvre un **menu contextuel** qui :
|
|
136
|
+
|
|
137
|
+
- détecte l'état (serveur présent, démarré, PID) ;
|
|
138
|
+
- ne propose que les actions pertinentes (créer si absent, démarrer si arrêté, arrêter si en cours…) ;
|
|
139
|
+
- route vers les commandes existantes.
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
pnx
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Options globales
|
|
146
|
+
|
|
147
|
+
| Option | Description |
|
|
148
|
+
|---|---|
|
|
149
|
+
| `--json` | Sortie JSON machine (désactive le rendu décoratif) |
|
|
150
|
+
| `--lang <fr\|en>` | Force la langue pour cette exécution |
|
|
151
|
+
| `--no-color` | Désactive les couleurs |
|
|
152
|
+
|
|
153
|
+
Résolution de la langue : `--lang` > configuration sauvegardée > variable d'environnement > **français** par défaut.
|
|
154
|
+
|
|
155
|
+
L'état du CLI est stocké dans `~/.pnx-cli/` (config, PID, plugins installés, cache des versions). Variables d'environnement : `PNX_API_URL` (base de l'API marketplace), `PNX_HOME` (répertoire d'état).
|
|
156
|
+
|
|
157
|
+
## Architecture
|
|
158
|
+
|
|
159
|
+
Le code suit une architecture en couches — commandes minces, logique métier isolée et testable :
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
src/
|
|
163
|
+
cli.ts point d'entrée (citty) + options globales
|
|
164
|
+
commands/ parse des arguments → appel service → rendu
|
|
165
|
+
plugin/ sous-commandes plugin
|
|
166
|
+
services/ logique métier pure (release, server, process, plugins, backup)
|
|
167
|
+
infra/ http, store JSON (~/.pnx-cli), constantes/endpoints
|
|
168
|
+
ui/ système d'affichage unique (clack + chalk), prompts
|
|
169
|
+
i18n/ traductions fr / en
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Règles : les commandes ne font aucun accès réseau/fichier direct (tout passe par `services`/`infra`) ; les services ne rendent rien (ils renvoient des données).
|
|
173
|
+
|
|
174
|
+
**Stack** : TypeScript, [citty](https://github.com/unjs/citty) (routing), [@clack/prompts](https://github.com/bombshell-dev/clack) (prompts), [chalk](https://github.com/chalk/chalk) (couleurs).
|
|
175
|
+
|
|
176
|
+
## Développement
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
npm install # dépendances
|
|
180
|
+
npm run build # compile TypeScript → dist/ (+ copie des assets i18n)
|
|
181
|
+
npm run dev # compilation en watch
|
|
182
|
+
npm start # lance dist/cli.js
|
|
183
|
+
npm test # tests des services (node:test + tsx)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Exécutables autonomes (SEA)
|
|
187
|
+
|
|
188
|
+
Le projet génère un binaire natif via **[Node Single Executable Applications](https://nodejs.org/api/single-executable-applications.html)** (bundling esbuild + injection `postject`) :
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
npm run build:sea
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Produit `pnx` (ou `pnx.exe` sous Windows) pour **la plateforme hôte**. SEA ne cross-compile pas : lancez la commande sur chaque système cible (Windows / Linux / macOS) pour obtenir son binaire.
|
|
195
|
+
|
|
196
|
+
## Liens utiles
|
|
197
|
+
|
|
198
|
+
- Documentation PowerNukkitX : https://docs.powernukkitx.org
|
|
199
|
+
- Dépôt PowerNukkitX : https://github.com/PowerNukkitX/PowerNukkitX
|
|
200
|
+
|
|
201
|
+
## Licence
|
|
202
|
+
|
|
203
|
+
MIT
|