JAVA BUKKIT PROGRAMMIERUNG: Plugin erst laden wenn anderes plugin geladen wurde!?
Wie es bereits oben steht möchte ich dass mein plugin erst startet und der "onEnable" teil ausgeführt wird wenn ein anderes plugin (Multiverse) geladen hatt da ich auf die API des anderen plugins angewiesen bin, leider hab ich keine ahnung wie man das umsetzten kann hab kurz überlegt mit einer while schleife dass zu regeln die solange läuft biss das plugin verfügbar ist aber da bukkit kein Multitasking macht sondern jedes plugin hintereinander startet würde dass bedeuten dass Multiverse garnicht startet da mein plugin darauf wartet und Bukkit daher nicht weitermacht... Oder liege ich da falsch?
Danke für jede antwort!
P.s.: Ja ich habe bereits gegoogelt!!!
2 Antworten
![](https://images.gutefrage.net/media/user/FabiHilft/1444745538_nmmslarge.jpg?v=1444745538000)
Ich kenne mich mit Bukkit nicht wirklich aus, aber wenn ich die (magere) Doku richtig verstehe, wird jedesmal wenn ein Plugin geladen wurde, folgendes Event gesendet:
org.bukkit.event.server.PluginEnableEvent
Also könntest du beim Enable deines Plugins dich als Listener registrieren:
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.server.PluginEnableEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class A extends JavaPlugin implements Listener
{
public final Logger log = Logger.getLogger("Minecraft");
public void onEnable()
{
log.info("Robot enabled");
Bukkit.getServer().getPluginManager().registerEvents(this, this);
}
public void onDisable()
{
log.info("Robot disabled");
}
@EventHandler
public void onPluginEnableEvent(PluginEnableEvent e){
if(e.getPlugin() == ...) {
//start your plugin
}
}
}
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
bin auf die Idee gekommen statt e.getPlugin soll er einfach überprüfen ob multiverse in der plugin list ist
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Ich probiere dass mal aus... bzw. Warte mal: Wenn Multiverse z.B.: vor meinem plugin geladen wird funktioniert das so nicht... :(
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Dafür gibt es "depend" und "softdepend" in der plugin.yml:
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
https://www.spigotmc.org/wiki/plugin-yml/:
Use the name attribute of the required plugin in order to specify the dependency.
https://github.com/Multiverse/Multiverse-Core/blob/master/src/main/resources/plugin.yml:
name: Multiverse-Core
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Da du es anscheinend nicht gemerkt hast: Bei dir fehlt im Pluginname der Bindestrich.
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Hast zwar geholfen hab aber jetzt folgende fehler meldung:
[22:33:46 ERROR]: Could not load 'plugins\plugin.jar' in folder 'plugins'
org.bukkit.plugin.UnknownDependencyException: MultiverseCore
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:219) [server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292) [server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:739) [server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.Bukkit.reload(Bukkit.java:535) [server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [server.jar:git-Spigot-db6de12-18fbb24]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_151]
weist du wass zu tun ist?