mirror of
https://github.com/PikaMug/Quests.git
synced 2025-02-17 21:11:20 +01:00
Catch unsupported ZNPCsPlus versions
This commit is contained in:
parent
45235ec59e
commit
93e57c2573
@ -61,6 +61,10 @@ public interface IDependencies {
|
|||||||
|
|
||||||
ZNPCsPlus getZnpcsPlus();
|
ZNPCsPlus getZnpcsPlus();
|
||||||
|
|
||||||
|
void linkZnpcsPlus();
|
||||||
|
|
||||||
|
void unlinkZnpcsPlus();
|
||||||
|
|
||||||
PartiesAPI getPartiesApi();
|
PartiesAPI getPartiesApi();
|
||||||
|
|
||||||
boolean isPluginAvailable(final String pluginName);
|
boolean isPluginAvailable(final String pluginName);
|
||||||
|
@ -24,6 +24,7 @@ import io.github.znetworkw.znpcservers.npc.NPC;
|
|||||||
import lol.pyr.znpcsplus.ZNPCsPlus;
|
import lol.pyr.znpcsplus.ZNPCsPlus;
|
||||||
import me.blackvein.quests.dependencies.IDependencies;
|
import me.blackvein.quests.dependencies.IDependencies;
|
||||||
import me.blackvein.quests.listeners.CitizensListener;
|
import me.blackvein.quests.listeners.CitizensListener;
|
||||||
|
import me.blackvein.quests.listeners.ZnpcsListener;
|
||||||
import me.blackvein.quests.player.IQuester;
|
import me.blackvein.quests.player.IQuester;
|
||||||
import me.blackvein.quests.reflect.denizen.DenizenAPI;
|
import me.blackvein.quests.reflect.denizen.DenizenAPI;
|
||||||
import me.blackvein.quests.reflect.worldguard.WorldGuardAPI;
|
import me.blackvein.quests.reflect.worldguard.WorldGuardAPI;
|
||||||
@ -165,8 +166,8 @@ public class Dependencies implements IDependencies {
|
|||||||
plugin.getLogger().info("Successfully linked Quests with Citizens "
|
plugin.getLogger().info("Successfully linked Quests with Citizens "
|
||||||
+ citizens.getDescription().getVersion());
|
+ citizens.getDescription().getVersion());
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception | NoClassDefFoundError e) {
|
||||||
plugin.getLogger().warning("Legacy version of Citizens found. Citizens in Quests not enabled.");
|
plugin.getLogger().severe("Unsupported version of Citizens found. Citizens in Quests not enabled.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -196,20 +197,45 @@ public class Dependencies implements IDependencies {
|
|||||||
|
|
||||||
public ZNPCsPlus getZnpcsPlus() {
|
public ZNPCsPlus getZnpcsPlus() {
|
||||||
if (znpcs == null) {
|
if (znpcs == null) {
|
||||||
znpcs = (ZNPCsPlus) plugin.getServer().getPluginManager().getPlugin("ZNPCsPlus");
|
linkZnpcsPlus();
|
||||||
startNpcEffectThread();
|
|
||||||
}
|
}
|
||||||
return znpcs;
|
return znpcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<UUID> getZnpcsPlusUuids() {
|
public Set<UUID> getZnpcsPlusUuids() {
|
||||||
if (znpcs != null && isPluginAvailable("ZNPCsPlus")) {
|
if (getZnpcsPlus() != null) {
|
||||||
return io.github.znetworkw.znpcservers.npc.NPC.all().stream()
|
return io.github.znetworkw.znpcservers.npc.NPC.all().stream()
|
||||||
.map(io.github.znetworkw.znpcservers.npc.NPC::getUUID).collect(Collectors.toSet());
|
.map(io.github.znetworkw.znpcservers.npc.NPC::getUUID).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
return Collections.emptySet();
|
return Collections.emptySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void linkZnpcsPlus() {
|
||||||
|
if (isPluginAvailable("ZNPCsPlus")) {
|
||||||
|
try {
|
||||||
|
znpcs = (ZNPCsPlus) plugin.getServer().getPluginManager().getPlugin("ZNPCsPlus");
|
||||||
|
boolean found = false;
|
||||||
|
for (final RegisteredListener listener : HandlerList.getRegisteredListeners(plugin)) {
|
||||||
|
if (listener.getListener() instanceof ZnpcsListener) {
|
||||||
|
found = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found) {
|
||||||
|
plugin.getServer().getPluginManager().registerEvents(plugin.getZnpcsListener(), plugin);
|
||||||
|
startNpcEffectThread();
|
||||||
|
plugin.getLogger().info("Successfully linked Quests with ZNPCsPlus "
|
||||||
|
+ znpcs.getDescription().getVersion());
|
||||||
|
}
|
||||||
|
} catch (final Exception | NoClassDefFoundError e) {
|
||||||
|
plugin.getLogger().severe("Unsupported version of ZNPCsPlus found. ZNPCsPlus in Quests not enabled.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unlinkZnpcsPlus() {
|
||||||
|
znpcs = null;
|
||||||
|
}
|
||||||
|
|
||||||
public PartiesAPI getPartiesApi() {
|
public PartiesAPI getPartiesApi() {
|
||||||
if (parties == null && isPluginAvailable("Parties")) {
|
if (parties == null && isPluginAvailable("Parties")) {
|
||||||
try {
|
try {
|
||||||
@ -223,7 +249,7 @@ public class Dependencies implements IDependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPluginAvailable(final String pluginName) {
|
public boolean isPluginAvailable(final String pluginName) {
|
||||||
if (plugin.getServer().getPluginManager().getPlugin(pluginName) != null ) {
|
if (plugin.getServer().getPluginManager().getPlugin(pluginName) != null) {
|
||||||
try {
|
try {
|
||||||
if (!Objects.requireNonNull(plugin.getServer().getPluginManager().getPlugin(pluginName)).isEnabled()) {
|
if (!Objects.requireNonNull(plugin.getServer().getPluginManager().getPlugin(pluginName)).isEnabled()) {
|
||||||
plugin.getLogger().warning(pluginName
|
plugin.getLogger().warning(pluginName
|
||||||
|
@ -865,6 +865,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||||||
depends.unlinkCitizens();
|
depends.unlinkCitizens();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (depends.getZnpcsPlus() != null) {
|
||||||
|
depends.unlinkZnpcsPlus();
|
||||||
|
}
|
||||||
loadModules();
|
loadModules();
|
||||||
importQuests();
|
importQuests();
|
||||||
if (getSettings().canDisableCommandFeedback()) {
|
if (getSettings().canDisableCommandFeedback()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user