Init
This commit is contained in:
224
content/world/portals/portal-commands.fr.md
Normal file
224
content/world/portals/portal-commands.fr.md
Normal file
@@ -0,0 +1,224 @@
|
||||
---
|
||||
title: Commandes Portail
|
||||
type: docs
|
||||
weight: 3
|
||||
---
|
||||
|
||||
Commandes pour gerer les portails, fragments et evenements du vide.
|
||||
|
||||
**Package:** `com.hypixel.hytale.builtin.portals.commands`
|
||||
|
||||
## Commandes Joueur
|
||||
|
||||
### /leave
|
||||
|
||||
Quitter le monde portail actuel et retourner au monde d'origine.
|
||||
|
||||
```
|
||||
/leave
|
||||
```
|
||||
|
||||
**Comportement:**
|
||||
- Fonctionne uniquement dans un monde portail
|
||||
- Retire la malediction de tous les items avant de partir
|
||||
- Teleporte le joueur vers l'emplacement du dispositif portail
|
||||
|
||||
**Implementation:**
|
||||
```java
|
||||
public class LeaveCommand extends AbstractPlayerCommand {
|
||||
@Override
|
||||
protected void execute(CommandContext context, Store<EntityStore> store,
|
||||
Ref<EntityStore> ref, PlayerRef playerRef, World world) {
|
||||
PortalWorld portalWorld = store.getResource(PortalWorld.getResourceType());
|
||||
if (!portalWorld.exists()) {
|
||||
playerRef.sendMessage(MESSAGE_NOT_IN_PORTAL);
|
||||
return;
|
||||
}
|
||||
|
||||
// Retirer malediction de tous items
|
||||
CursedItems.uncurseAll(player.getInventory().getCombinedEverything());
|
||||
|
||||
// Sortir de l'instance
|
||||
InstancesPlugin.exitInstance(ref, store);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Commandes Fragment
|
||||
|
||||
### /fragment
|
||||
|
||||
Commande parente pour gestion fragments.
|
||||
|
||||
```
|
||||
/fragment <sous-commande>
|
||||
```
|
||||
|
||||
| Sous-commande | Description |
|
||||
|---------------|-------------|
|
||||
| `timer` | Modifier temps restant fragment |
|
||||
|
||||
### /fragment timer
|
||||
|
||||
Definir le temps restant pour le fragment portail actuel.
|
||||
|
||||
```
|
||||
/fragment timer <secondes>
|
||||
```
|
||||
|
||||
**Arguments:**
|
||||
|
||||
| Argument | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| `secondes` | INTEGER | Nouveau temps restant en secondes |
|
||||
|
||||
**Exemple:**
|
||||
```
|
||||
/fragment timer 300 # Definir 5 minutes restantes
|
||||
/fragment timer 60 # Definir 1 minute restante
|
||||
```
|
||||
|
||||
**Implementation:**
|
||||
```java
|
||||
public class TimerFragmentCommand extends PortalWorldCommandBase {
|
||||
private final RequiredArg<Integer> remainingSecondsArg;
|
||||
|
||||
@Override
|
||||
protected void execute(CommandContext context, World world,
|
||||
PortalWorld portalWorld, Store<EntityStore> store) {
|
||||
int before = (int) portalWorld.getRemainingSeconds(world);
|
||||
int desired = remainingSecondsArg.get(context);
|
||||
portalWorld.setRemainingSeconds(world, desired);
|
||||
// Rapporte: "Change de {before} a {after}"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Commandes Evenement Vide
|
||||
|
||||
### /voidevent
|
||||
|
||||
Commande parente pour gestion evenement vide.
|
||||
|
||||
```
|
||||
/voidevent <sous-commande>
|
||||
```
|
||||
|
||||
| Sous-commande | Description |
|
||||
|---------------|-------------|
|
||||
| `start` | Demarrer un evenement vide |
|
||||
|
||||
### /voidevent start
|
||||
|
||||
Demarrer un evenement invasion du vide dans le monde actuel.
|
||||
|
||||
```
|
||||
/voidevent start [--override]
|
||||
```
|
||||
|
||||
**Flags:**
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `--override` | Forcer demarrage meme si pas dans monde portail |
|
||||
|
||||
**Comportement:**
|
||||
- Si deja dans monde portail avec evenement vide actif: echoue
|
||||
- Si pas dans monde portail sans `--override`: echoue
|
||||
- Avec `--override`: cree configuration monde portail temporaire
|
||||
- Met temps restant a 1 seconde pour declencher evenement vide
|
||||
|
||||
**Implementation:**
|
||||
```java
|
||||
public class StartVoidEventCommand extends AbstractWorldCommand {
|
||||
private final FlagArg overrideWorld;
|
||||
|
||||
@Override
|
||||
protected void execute(CommandContext context, World world,
|
||||
Store<EntityStore> store) {
|
||||
PortalWorld portalWorld = store.getResource(PortalWorld.getResourceType());
|
||||
|
||||
// Verifier si deja en cours
|
||||
if (portalWorld.exists() && portalWorld.isVoidEventActive()) {
|
||||
context.sendMessage("Evenement vide deja en cours");
|
||||
return;
|
||||
}
|
||||
|
||||
// Si pas dans monde portail, requiert --override
|
||||
if (!portalWorld.exists()) {
|
||||
if (!overrideWorld.get(context)) {
|
||||
context.sendMessage("Pas dans monde portail");
|
||||
return;
|
||||
}
|
||||
// Configurer monde portail temporaire
|
||||
portalWorld.init(portalType, timeLimit, removalCondition, config);
|
||||
}
|
||||
|
||||
// Declencher evenement vide en mettant timer a 1 seconde
|
||||
portalWorld.setRemainingSeconds(world, 1.0);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Commandes Utilitaires
|
||||
|
||||
### /cursehelditem
|
||||
|
||||
Marquer l'item tenu comme maudit (commande debug/test).
|
||||
|
||||
```
|
||||
/cursehelditem
|
||||
```
|
||||
|
||||
**Comportement:**
|
||||
- Ajoute marqueur malediction a l'item en main principale
|
||||
- Items maudits sont perdus quand joueur meurt dans monde portail
|
||||
|
||||
## Classes de Base Commandes
|
||||
|
||||
### PortalWorldCommandBase
|
||||
|
||||
Classe de base pour commandes necessitant un monde portail:
|
||||
|
||||
```java
|
||||
public abstract class PortalWorldCommandBase extends AbstractWorldCommand {
|
||||
@Override
|
||||
protected final void execute(CommandContext context, World world,
|
||||
Store<EntityStore> store) {
|
||||
PortalWorld portalWorld = store.getResource(PortalWorld.getResourceType());
|
||||
if (!portalWorld.exists()) {
|
||||
context.sendMessage(MESSAGE_NOT_IN_PORTAL);
|
||||
return;
|
||||
}
|
||||
execute(context, world, portalWorld, store);
|
||||
}
|
||||
|
||||
protected abstract void execute(CommandContext context, World world,
|
||||
PortalWorld portalWorld,
|
||||
Store<EntityStore> store);
|
||||
}
|
||||
```
|
||||
|
||||
## Enregistrement Commandes
|
||||
|
||||
Les commandes sont enregistrees dans setup PortalsPlugin:
|
||||
|
||||
```java
|
||||
this.getCommandRegistry().registerCommand(new LeaveCommand());
|
||||
this.getCommandRegistry().registerCommand(new CursedHeldItemCommand());
|
||||
this.getCommandRegistry().registerCommand(new VoidEventCommands());
|
||||
this.getCommandRegistry().registerCommand(new FragmentCommands());
|
||||
```
|
||||
|
||||
## Messages
|
||||
|
||||
Les commandes portail utilisent des cles de traduction pour les messages:
|
||||
|
||||
| Cle | Description |
|
||||
|-----|-------------|
|
||||
| `server.commands.leave.notInPortal` | Pas dans monde portail |
|
||||
| `server.commands.leave.uncursedTemp` | Items ont ete decursifies |
|
||||
| `server.commands.portals.notInPortal` | Pas dans monde portail |
|
||||
| `server.commands.voidevent.start.alreadyRunning` | Evenement vide actif |
|
||||
| `server.commands.voidevent.start.success` | Evenement vide demarre |
|
||||
| `server.commands.fragment.timer.success` | Timer modifie |
|
||||
Reference in New Issue
Block a user