diff --git a/api/src/main/java/com/velocitypowered/api/plugin/PluginContainer.java b/api/src/main/java/com/velocitypowered/api/plugin/PluginContainer.java index 6e5981ad62..2420f55483 100644 --- a/api/src/main/java/com/velocitypowered/api/plugin/PluginContainer.java +++ b/api/src/main/java/com/velocitypowered/api/plugin/PluginContainer.java @@ -37,5 +37,5 @@ default Optional getInstance() { * * @return an {@link ExecutorService} associated with this plugin */ - ExecutorService getService(); + ExecutorService getExecutorService(); } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/plugin/loader/VelocityPluginContainer.java b/proxy/src/main/java/com/velocitypowered/proxy/plugin/loader/VelocityPluginContainer.java index 121618b6cb..fb9a4ea3f3 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/plugin/loader/VelocityPluginContainer.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/plugin/loader/VelocityPluginContainer.java @@ -52,14 +52,15 @@ public void setInstance(Object instance) { } @Override - public ExecutorService getService() { + public ExecutorService getExecutorService() { if (this.service == null) { synchronized (this) { if (this.service == null) { + String name = this.description.getName().orElse(this.description.getId()); this.service = Executors.unconfigurableExecutorService( Executors.newCachedThreadPool( new ThreadFactoryBuilder().setDaemon(true) - .setNameFormat(description.getId() + " - Task Scheduler #%d") + .setNameFormat(name + " - Task Executor #%d") .build() ) ); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/plugin/loader/java/VelocityPluginModule.java b/proxy/src/main/java/com/velocitypowered/proxy/plugin/loader/java/VelocityPluginModule.java index c702b4944d..0ad9459a8e 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/plugin/loader/java/VelocityPluginModule.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/plugin/loader/java/VelocityPluginModule.java @@ -19,12 +19,14 @@ import com.google.inject.Binder; import com.google.inject.Module; +import com.google.inject.Provider; import com.google.inject.Scopes; import com.velocitypowered.api.plugin.PluginContainer; import com.velocitypowered.api.plugin.PluginDescription; import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.ProxyServer; import java.nio.file.Path; +import java.util.concurrent.ExecutorService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,5 +54,7 @@ public void configure(Binder binder) { .toInstance(basePluginPath.resolve(description.getId())); binder.bind(PluginDescription.class).toInstance(description); binder.bind(PluginContainer.class).toInstance(pluginContainer); + + binder.bind(ExecutorService.class).toProvider(pluginContainer::getExecutorService); } } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/scheduler/VelocityScheduler.java b/proxy/src/main/java/com/velocitypowered/proxy/scheduler/VelocityScheduler.java index 35cfabb999..96d0b94d60 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/scheduler/VelocityScheduler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/scheduler/VelocityScheduler.java @@ -118,7 +118,7 @@ public boolean shutdown() throws InterruptedException { timerExecutionService.shutdown(); for (final PluginContainer container : this.pluginManager.getPlugins()) { if (container instanceof VelocityPluginContainer) { - (container).getService().shutdown(); + (container).getExecutorService().shutdown(); } } @@ -128,7 +128,7 @@ public boolean shutdown() throws InterruptedException { continue; } final String id = container.getDescription().getId(); - final ExecutorService service = (container).getService(); + final ExecutorService service = (container).getExecutorService(); try { if (!service.awaitTermination(10, TimeUnit.SECONDS)) { @@ -268,7 +268,7 @@ public void cancel() { @Override public void run() { - container.getService().execute(() -> { + container.getExecutorService().execute(() -> { currentTaskThread = Thread.currentThread(); try { if (runnable != null) { diff --git a/proxy/src/test/java/com/velocitypowered/proxy/testutil/FakePluginManager.java b/proxy/src/test/java/com/velocitypowered/proxy/testutil/FakePluginManager.java index ce23bae886..04ba3867d5 100644 --- a/proxy/src/test/java/com/velocitypowered/proxy/testutil/FakePluginManager.java +++ b/proxy/src/test/java/com/velocitypowered/proxy/testutil/FakePluginManager.java @@ -100,7 +100,7 @@ public Optional getInstance() { } @Override - public ExecutorService getService() { + public ExecutorService getExecutorService() { return service; } }