【问题标题】:Vault loading too late保险柜加载太晚
【发布时间】:2021-01-08 21:33:02
【问题描述】:

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

我尝试了 dependsoftdependloadbefore。我什至尝试降级服务器上使用的 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 加载得太晚了。

【问题讨论】:

  • 你能附上你得到的错误吗?
  • 你使用其他插件吗?
  • 我使用 NPCLib 和 SmartInvs
  • 而且它们都依赖于不加载之前,对吧?如果是这种情况,那么使用其他插件应该没关系。
  • plugins.yml 中甚至都没有提到这两者并且仍然有效。编辑:我知道,行为不好。

标签: java yaml minecraft bukkit bukkit-vault


【解决方案1】:

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

更多信息见this

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 试过了,阅读问题。不起作用。
    • 如果你同时有 loadbefore 和depend,行为是不一致的。不清楚您之前是否在没有加载的情况下尝试过。请编辑您的问题以使其清楚。
    • 我都试过了,没有 loadbefore 和没有依赖。
    • 他想说的是,他已经尝试过使用 justdepend: [Vault] 但它不起作用。
    • 奇怪。任何人都可以复制它吗?似乎没有发生在我这边。也许尝试使用 [] 列表格式而不是你的,但两者都应该工作。 (可能两者都没有)
    【解决方案3】:

    我通过添加修复它

    <scope>provided</scope>
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 2020-05-10
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      相关资源
      最近更新 更多