当前位置: 首页 > 知识库问答 >
问题:

Bukkit API软依赖导入

杨星纬
2023-03-14

我的plugin.yml中有一个softdepend:

softdepend: [Plugin]
if(getServer().getPluginManager().getPlugin("Plugin") != null) {
  // do stuff
}

共有1个答案

阎功
2023-03-14

与其在依赖项存在时启用插件,不如在不存在时禁用插件。

if (getServer().getPluginManager().getPlugin("Plugin") != null) {
  // error message, whatever else you need here
  getServer().getPluginManager().disablePlugin(this);
}

编辑:我刚刚意识到这可能不是你想要做的。如果您试图使用某个可能不在服务器上的插件的代码,例如,在侦听器中,创建两个侦听器类:一个包含使用该插件的代码,另一个不包含该插件的代码。然后在注册侦听器时,执行如下操作:

if (getServer().getPluginManager().getPlugin("Plugin") != null) {
  getServer().getPluginManager().registerEvents(new ListenerWithDependencyCode(), this);
} else {
  getServer().getPluginManager().registerEvents(new ListenerWithoutDependencyCode(), this);
}
 类似资料:
  • 我不得不重新安装Android Studio2.1.3,现在我出现了一些错误。我的一些进口品不见了。

  • 问题内容: 假设我具有以下目录结构: 在软件包的中,将导入软件包。但是进口。 程序失败,表示尝试导入b时不存在。(它实际上不存在,因为我们正在导入它。)`c_file.pya.b.d `如何解决这个问题? 问题答案: 如果a取决于c,而c取决于a,那么它们实际上不是同一单位吗? 您应该真正检查一下为什么将a和c拆分为两个包,因为您应该将一些代码拆分为另一个包(以使它们都依赖于该新包,而不是彼此依赖

  • 我正在创建一个需要导入外部类的类,但是要导入的类的选择取决于一个变量,这个变量在类实例化之前是不知道的。模块文件结构是这样的: 我的类构建为对以多种格式存储的数据集(例如,Pandas、Postgresql)进行操作,我需要根据使用的后端数据格式导入类。 我想做这样的事 但这当然不允许我在MyClass的其他地方引用TableData类。有没有合适的方法来做这件事?

  • 现代软件系统趋向于依赖大量的非直接可控的组件。通过协同与重用,这增加了生产效率。然而,每个组件会带来一些问题: 你该如何修复组件中的 bug? 组件限制你使用特殊的硬件或软件系统了吗? 如果组件完全坏掉了,你该做什么? 某些程度上解耦组件,让它独立可以被移除,总是最好的。如果组件被证明完全不可用,你可能能够使用不同的组件,但你可能必须自己写一个组件。解耦不是可移植性,但这让移植变得简单,这大多数时

  • 我已经成功地将依赖注入用于我自己的自定义服务,如本文所述。 我想要的是在我的定制服务中使用框架作为参数注入Azure函数的绑定器。用作函数参数的示例: 我尝试将Binder作为参数添加到我的服务构造函数并让框架创建我的服务实例,但传入的Binder始终为空。 我的服务构造函数: 注册如下: 有人知道这是否可能吗?如果可能,我做错了什么?