Simplify command dispatch to ensure command order (#2131)

Dieser Commit ist enthalten in:
Hannes Greule 2023-04-18 17:28:38 +02:00 committet von GitHub
Ursprung 5cd9616507
Commit 86acb1c4d4
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 4AEE18F83AFDEB23

Datei anzeigen

@ -678,31 +678,26 @@ public final class PlatformCommandManager {
Actor actor = event.getActor(); Actor actor = event.getActor();
String args = event.getArguments(); String args = event.getArguments();
TaskManager.taskManager().taskNow(() -> { int space0 = args.indexOf(' ');
if (!Fawe.isMainThread()) { String arg0 = space0 == -1 ? args : args.substring(0, space0);
Thread.currentThread().setName("FAWE Thread for player: " + actor.getName()); Optional<Command> optional = commandManager.getCommand(arg0);
if (optional.isEmpty()) {
return;
}
Command cmd = optional.get();
PermissionCondition queued = cmd.getCondition().as(PermissionCondition.class).orElse(null);
if (queued != null && !queued.isQueued()) {
TaskManager.taskManager().taskNow(() -> handleCommandOnCurrentThread(event), Fawe.isMainThread());
return;
} else {
actor.decline();
}
actor.runAction(() -> {
SessionKey key = actor.getSessionKey();
if (key.isActive()) {
PlatformCommandManager.this.handleCommandOnCurrentThread(event);
} }
int space0 = args.indexOf(' '); }, false, true);
String arg0 = space0 == -1 ? args : args.substring(0, space0);
Optional<Command> optional = commandManager.getCommand(arg0);
if (!optional.isPresent()) {
return;
}
Command cmd = optional.get();
PermissionCondition queued = cmd.getCondition().as(PermissionCondition.class).orElse(null);
if (queued != null && !queued.isQueued()) {
handleCommandOnCurrentThread(event);
return;
} else {
actor.decline();
}
actor.runAction(() -> {
SessionKey key = actor.getSessionKey();
if (key.isActive()) {
PlatformCommandManager.this.handleCommandOnCurrentThread(event);
}
}, false, true);
}, Fawe.isMainThread());
} }
public void handleCommandOnCurrentThread(CommandEvent event) { public void handleCommandOnCurrentThread(CommandEvent event) {