3

我的插件在 Vault 之前加载,即使我在 plugin.yml 中添加了一个依赖/加载后

我尝试过依赖依赖和加载之前。我什至尝试降级服务器上使用的 Vault 版本。

我什至在没有依赖的情况下尝试加载,反之亦然。

我的 plugins.yml

name: TrainsaPlugin
version: ${project.version}
main: de.gamingcraft.trainsa.TrainsaPlugin

(...)

loadbefore:
  - Vault

depend:
  - Vault

commands: (...)

我的主要课程:

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 时,我的主类会禁用我的插件,我想要这样做,因为它目前是必不可少的。

TL;DR:我的问题是,Vault 加载太晚了。

4

3 回答 3

0

到你的 plugin.yml 添加depend: [Vault]

有关更多信息,请参阅

于 2021-01-08T21:47:02.393 回答
0

您将 Vault 添加到loadbefore,这会使您的插件在 Vault 之前加载。如果您希望 Vault 在您的插件之前加载,请使用depend: [Vault,someOtherPlugin,someOtherPlugin,etc].

于 2021-01-08T21:51:41.077 回答
0

我通过添加来修复它

<scope>provided</scope>

对于每个依赖项,这是 pom.xml 中的一个插件

于 2021-01-18T12:56:25.420 回答