fabric: Use stateful command manager
This commit is contained in:
parent
eef98da9c9
commit
dc90551168
2 changed files with 6 additions and 6 deletions
|
|
@ -149,4 +149,8 @@ public class FabricCommandManager<C> extends CommandManager<C> implements Brigad
|
|||
return this.brigadierManager;
|
||||
}
|
||||
|
||||
final void registrationCalled() {
|
||||
this.transitionOrThrow(RegistrationState.REGISTERING, RegistrationState.AFTER_REGISTRATION);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
public final class FabricCommandRegistrationHandler<C> implements CommandRegistrationHandler {
|
||||
private @MonotonicNonNull FabricCommandManager<C> commandManager;
|
||||
private final Set<Command<C>> registeredCommands = ConcurrentHashMap.newKeySet();
|
||||
private boolean commandRegistrationCalled;
|
||||
|
||||
void initialize(final FabricCommandManager<C> manager) {
|
||||
this.commandManager = manager;
|
||||
|
|
@ -60,16 +59,13 @@ public final class FabricCommandRegistrationHandler<C> implements CommandRegistr
|
|||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public boolean registerCommand(@NonNull final Command<?> command) {
|
||||
if (this.commandRegistrationCalled) {
|
||||
throw new IllegalStateException("too late!");
|
||||
}
|
||||
return this.registeredCommands.add((Command<C>) command);
|
||||
}
|
||||
|
||||
private void registerAllCommands(final CommandDispatcher<ServerCommandSource> dispatcher, final boolean isDedicated) {
|
||||
this.commandRegistrationCalled = true;
|
||||
this.commandManager.registrationCalled();
|
||||
for (final Command<C> command : this.registeredCommands) {
|
||||
registerCommand(dispatcher.getRoot(), command);
|
||||
this.registerCommand(dispatcher.getRoot(), command);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue