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;
|
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 {
|
public final class FabricCommandRegistrationHandler<C> implements CommandRegistrationHandler {
|
||||||
private @MonotonicNonNull FabricCommandManager<C> commandManager;
|
private @MonotonicNonNull FabricCommandManager<C> commandManager;
|
||||||
private final Set<Command<C>> registeredCommands = ConcurrentHashMap.newKeySet();
|
private final Set<Command<C>> registeredCommands = ConcurrentHashMap.newKeySet();
|
||||||
private boolean commandRegistrationCalled;
|
|
||||||
|
|
||||||
void initialize(final FabricCommandManager<C> manager) {
|
void initialize(final FabricCommandManager<C> manager) {
|
||||||
this.commandManager = manager;
|
this.commandManager = manager;
|
||||||
|
|
@ -60,16 +59,13 @@ public final class FabricCommandRegistrationHandler<C> implements CommandRegistr
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public boolean registerCommand(@NonNull final Command<?> command) {
|
public boolean registerCommand(@NonNull final Command<?> command) {
|
||||||
if (this.commandRegistrationCalled) {
|
|
||||||
throw new IllegalStateException("too late!");
|
|
||||||
}
|
|
||||||
return this.registeredCommands.add((Command<C>) command);
|
return this.registeredCommands.add((Command<C>) command);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerAllCommands(final CommandDispatcher<ServerCommandSource> dispatcher, final boolean isDedicated) {
|
private void registerAllCommands(final CommandDispatcher<ServerCommandSource> dispatcher, final boolean isDedicated) {
|
||||||
this.commandRegistrationCalled = true;
|
this.commandManager.registrationCalled();
|
||||||
for (final Command<C> command : this.registeredCommands) {
|
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