geforkt von Mirrors/Velocity
check if a plugin has a executor service (#1038)
* check if a plugin has an executor service * checkstyle
Dieser Commit ist enthalten in:
Ursprung
37fedf508e
Commit
be9ecf75b2
@ -71,4 +71,8 @@ public class VelocityPluginContainer implements PluginContainer {
|
|||||||
|
|
||||||
return this.service;
|
return this.service;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasExecutorService() {
|
||||||
|
return this.service != null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,9 +30,12 @@ import com.velocitypowered.api.scheduler.ScheduledTask;
|
|||||||
import com.velocitypowered.api.scheduler.Scheduler;
|
import com.velocitypowered.api.scheduler.Scheduler;
|
||||||
import com.velocitypowered.api.scheduler.TaskStatus;
|
import com.velocitypowered.api.scheduler.TaskStatus;
|
||||||
import com.velocitypowered.proxy.plugin.loader.VelocityPluginContainer;
|
import com.velocitypowered.proxy.plugin.loader.VelocityPluginContainer;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.IdentityHashMap;
|
import java.util.IdentityHashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
@ -116,17 +119,24 @@ public class VelocityScheduler implements Scheduler {
|
|||||||
task.cancel();
|
task.cancel();
|
||||||
}
|
}
|
||||||
timerExecutionService.shutdown();
|
timerExecutionService.shutdown();
|
||||||
for (final PluginContainer container : this.pluginManager.getPlugins()) {
|
final List<PluginContainer> plugins = new ArrayList<>(this.pluginManager.getPlugins());
|
||||||
|
final Iterator<PluginContainer> pluginIterator = plugins.iterator();
|
||||||
|
while (pluginIterator.hasNext()) {
|
||||||
|
final PluginContainer container = pluginIterator.next();
|
||||||
if (container instanceof VelocityPluginContainer) {
|
if (container instanceof VelocityPluginContainer) {
|
||||||
(container).getExecutorService().shutdown();
|
final VelocityPluginContainer pluginContainer = (VelocityPluginContainer) container;
|
||||||
|
if (pluginContainer.hasExecutorService()) {
|
||||||
|
container.getExecutorService().shutdown();
|
||||||
|
} else {
|
||||||
|
pluginIterator.remove();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
pluginIterator.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean allShutdown = true;
|
boolean allShutdown = true;
|
||||||
for (final PluginContainer container : this.pluginManager.getPlugins()) {
|
for (final PluginContainer container : plugins) {
|
||||||
if (!(container instanceof VelocityPluginContainer)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
final String id = container.getDescription().getId();
|
final String id = container.getDescription().getId();
|
||||||
final ExecutorService service = (container).getExecutorService();
|
final ExecutorService service = (container).getExecutorService();
|
||||||
|
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren