保险库加载太晚
Vault loading too late
我的插件在 Vault 之前加载,即使我在 plugin.yml
中添加了 depend/load-after
我尝试了 depend、softdepend 和 loadbefore。我什至尝试降级服务器上使用的 Vault 版本。
我什至在没有依赖的情况下尝试加载前,反之亦然。
我的plugins.yml
name: TrainsaPlugin
version: ${project.version}
main: de.gamingcraft.trainsa.TrainsaPlugin
(...)
loadbefore:
- Vault
depend:
- Vault
commands: (...)
我的主Class:
public final class TrainsaPlugin extends JavaPlugin {
(...)
public static Economy econ = null;
public static Permission perms = null;
public static Chat chat = null;
@Override
public void onEnable() {
(...)
if (!setupEconomy() ) {
System.out.println("Disabled due to no Vault dependency found!");
getServer().getPluginManager().disablePlugin(this);
return;
}
setupPermissions();
setupChat();
}
private boolean setupEconomy() {
if (getServer().getPluginManager().getPlugin("Vault") == null) {
return false;
}
RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
return false;
}
econ = rsp.getProvider();
return econ != null;
}
private boolean setupChat() {
RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
chat = rsp.getProvider();
return chat != null;
}
private boolean setupPermissions() {
RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
perms = rsp.getProvider();
return perms != null;
}
@Override
public void onDisable() {
}
(...)
}
日志
[22:35:43 INFO]: [TrainsaPlugin] Disabling TrainsaPlugin v1.0
(...)
[22:35:43 INFO]: Server permissions file permissions.yml is empty, ignoring it
[22:35:43 INFO]: Done (1,912s)! For help, type "help" or "?"
[22:35:43 INFO]: [Vault] Checking for Updates ...
我知道,当找不到 Vault 时,我的 main-class 会禁用我的插件,我想要它,因为它现在是必不可少的。
TL;DR:我的问题是,Vault 加载得太晚了。
在您的 plugin.yml 中添加 depend: [Vault]
有关详细信息,请参阅 this
您向 loadbefore
添加了 vault,这使得您的插件在 vault 之前加载。如果你想让 vault 在你的插件之前加载,使用 depend: [Vault,someOtherPlugin,someOtherPlugin,etc]
.
我通过添加
修复了它
<scope>provided</scope>
对于每个依赖项,这是 pom.xml
中的一个插件
我的插件在 Vault 之前加载,即使我在 plugin.yml
中添加了 depend/load-after我尝试了 depend、softdepend 和 loadbefore。我什至尝试降级服务器上使用的 Vault 版本。
我什至在没有依赖的情况下尝试加载前,反之亦然。
我的plugins.yml
name: TrainsaPlugin
version: ${project.version}
main: de.gamingcraft.trainsa.TrainsaPlugin
(...)
loadbefore:
- Vault
depend:
- Vault
commands: (...)
我的主Class:
public final class TrainsaPlugin extends JavaPlugin {
(...)
public static Economy econ = null;
public static Permission perms = null;
public static Chat chat = null;
@Override
public void onEnable() {
(...)
if (!setupEconomy() ) {
System.out.println("Disabled due to no Vault dependency found!");
getServer().getPluginManager().disablePlugin(this);
return;
}
setupPermissions();
setupChat();
}
private boolean setupEconomy() {
if (getServer().getPluginManager().getPlugin("Vault") == null) {
return false;
}
RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
return false;
}
econ = rsp.getProvider();
return econ != null;
}
private boolean setupChat() {
RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
chat = rsp.getProvider();
return chat != null;
}
private boolean setupPermissions() {
RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
perms = rsp.getProvider();
return perms != null;
}
@Override
public void onDisable() {
}
(...)
}
日志
[22:35:43 INFO]: [TrainsaPlugin] Disabling TrainsaPlugin v1.0
(...)
[22:35:43 INFO]: Server permissions file permissions.yml is empty, ignoring it
[22:35:43 INFO]: Done (1,912s)! For help, type "help" or "?"
[22:35:43 INFO]: [Vault] Checking for Updates ...
我知道,当找不到 Vault 时,我的 main-class 会禁用我的插件,我想要它,因为它现在是必不可少的。
TL;DR:我的问题是,Vault 加载得太晚了。
在您的 plugin.yml 中添加 depend: [Vault]
有关详细信息,请参阅 this
您向 loadbefore
添加了 vault,这使得您的插件在 vault 之前加载。如果你想让 vault 在你的插件之前加载,使用 depend: [Vault,someOtherPlugin,someOtherPlugin,etc]
.
我通过添加
修复了它<scope>provided</scope>
对于每个依赖项,这是 pom.xml
中的一个插件