Skip to content

Commit 312d6fc

Browse files
committed
WebSocket API
1 parent 090eca9 commit 312d6fc

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

ModuLake-Server/src/main/java/com/eternalstarmc/modulake/dependency/InjectManagerImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ private Object createDependency(Class<?> type, Object object, Class<?> objectCla
7474
log.warn("无法为 {} 创建依赖,请检查是否已注册依赖创建器,需注入依赖的类实例 {}", type, object);
7575
return null;
7676
}
77+
return creator.createDependency(object);
7778
}
7879
creator = dependenciesAll.get(type);
7980
if (creator == null) {
@@ -88,5 +89,6 @@ private Object createDependency(Class<?> type, Object object, Class<?> objectCla
8889

8990
public void cleanup() {
9091
dependenciesAll.clear();
92+
dependenciesOnly.clear();
9193
}
9294
}

ModuLake-Server/src/main/java/com/eternalstarmc/modulake/plugin/PluginClassLoaderImpl.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
import java.util.Map;
1010
import java.util.concurrent.ConcurrentHashMap;
1111

12-
import static com.eternalstarmc.modulake.Main.PLUGIN_MANAGER;
13-
1412

1513
@Impl("PLUGIN_SYSTEM, PluginClassLoaderImpl")
1614
public class PluginClassLoaderImpl extends PluginClassLoader {
@@ -22,17 +20,22 @@ public PluginClassLoaderImpl(URL[] urls) {
2220
}
2321

2422
@Override
25-
protected Class<?> findClass (String name) throws ClassNotFoundException {
26-
try {return super.findClass(name);} catch (ClassNotFoundException ignored) {}
27-
28-
PluginManagerImpl manager = (PluginManagerImpl) PLUGIN_MANAGER;
29-
for (AbsPlugin absPlugin : manager.getPluginsMap().values()) {
30-
PluginClassLoaderImpl loader = (PluginClassLoaderImpl) absPlugin.getClassLoader();
31-
return loader.findClass0(name);
23+
protected Class<?> findClass(String name) throws ClassNotFoundException {
24+
try {
25+
return super.findClass(name);
26+
} catch (ClassNotFoundException ignored) {}
27+
28+
// 遍历所有依赖,直到找到类或全部检查完
29+
for (PluginClassLoaderImpl clazzLoader : dependencies.values()) {
30+
try {
31+
return clazzLoader.findClass0(name);
32+
} catch (ClassNotFoundException ignored) {
33+
}
3234
}
3335
throw new ClassNotFoundException(name);
3436
}
3537

38+
3639
protected Class<?> findClass0 (String name) throws ClassNotFoundException {
3740
return super.findClass(name);
3841
}

0 commit comments

Comments
 (0)