21.04.2016, 09:24
(
Последний раз редактировалось dusk; 21.04.2016 в 13:45.
)
Quote:
@dusk: Yes, of course, this is possible. You add your dependency to your target projects as usual, and then you need to add a little bit of code. Of course, only one plugin will be loaded at a time, and that means that one of your two plugins will load after your first one, which means that one will lack the required dependency at the onEnable() method. To fix this, you can use the ResourceLoadedEvent. I made a little example for you:
PHP код:
|
EDIT: how can getEventManager() return null in onEnable method? This only happens for one of my plugins
Код:
@Override protected void onEnable() throws Throwable { Instance.instance = this; this.vehicles = new ArrayList<>(); this.maxSpeeds = new HashMap<>(); this.random = new Random(); if(getEventManager() == null) logger.error("How can it be null?"); this.eventManager = getEventManager().createChildNode(); this.vehicleEngineTimers = new HashMap<>(); if(Shoebill.get().getResourceManager().getPlugin(DatabasePlugin.class) != null) { load(); } else { eventManager.registerHandler(ResourceEnableEvent.class, ee -> { if(ee.getResource().getClass().equals(DatabasePlugin.class)) { load(); } }); }
Код:
2016-04-21 16:40:31,052 ERROR [VehiclePlugin] - How can it be null? 2016-04-21 16:40:31,053 ERROR [err] - java.lang.NullPointerException 2016-04-21 16:40:31,053 ERROR [err] - at lt.ltrp.VehiclePlugin.onEnable(VehiclePlugin.java:67) 2016-04-21 16:40:31,053 ERROR [err] - at net.gtaun.shoebill.resource.Resource.enable(Resource.java:91) 2016-04-21 16:40:31,054 ERROR [err] - at net.gtaun.shoebill.resource.Plugin.enable(Plugin.java:52) 2016-04-21 16:40:31,054 ERROR [err] - at net.gtaun.shoebill.resource.ResourceManagerImpl.loadPlugin(ResourceManagerImpl.java:109) 2016-04-21 16:40:31,054 ERROR [err] - at net.gtaun.shoebill.resource.ResourceManagerImpl.loadPlugin(ResourceManagerImpl.java:89) 2016-04-21 16:40:31,054 ERROR [err] - at net.gtaun.shoebill.resource.ResourceManagerImpl$$Lambda$34/21453518.accept(Unknown Source) 2016-04-21 16:40:31,054 ERROR [err] - at java.util.ArrayList.forEach(ArrayList.java:1234) 2016-04-21 16:40:31,055 ERROR [err] - at net.gtaun.shoebill.resource.ResourceManagerImpl.loadAllResource(ResourceManagerImpl.java:61) 2016-04-21 16:40:31,055 ERROR [err] - at net.gtaun.shoebill.ShoebillImpl.loadPluginsAndGamemode(ShoebillImpl.java:289) 2016-04-21 16:40:31,055 ERROR [err] - at net.gtaun.shoebill.ShoebillImpl.access$100(ShoebillImpl.java:47) 2016-04-21 16:40:31,055 ERROR [err] - at net.gtaun.shoebill.ShoebillImpl$1.onAmxLoad(ShoebillImpl.java:233) 2016-04-21 16:40:31,055 ERROR [err] - at net.gtaun.shoebill.samp.SampCallbackManagerImpl$1.lambda$null$80(SampCallbackManagerImpl.java:60) 2016-04-21 16:40:31,056 ERROR [err] - at net.gtaun.shoebill.samp.SampCallbackManagerImpl$1$$Lambda$33/2151717.call(Unknown Source) 2016-04-21 16:40:31,056 ERROR [err] - at net.gtaun.shoebill.util.TryUtils.tryTo(TryUtils.java:21) 2016-04-21 16:40:31,056 ERROR [err] - at net.gtaun.shoebill.util.TryUtils.tryTo(TryUtils.java:14) 2016-04-21 16:40:31,056 ERROR [err] - at net.gtaun.shoebill.samp.SampCallbackManagerImpl$1.lambda$onAmxLoad$81(SampCallbackManagerImpl.java:60) 2016-04-21 16:40:31,057 ERROR [err] - at net.gtaun.shoebill.samp.SampCallbackManagerImpl$1$$Lambda$32/32749724.accept(Unknown Source) 2016-04-21 16:40:31,057 ERROR [err] - at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) 2016-04-21 16:40:31,057 ERROR [err] - at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) 2016-04-21 16:40:31,057 ERROR [err] - at java.util.concurrent.ConcurrentLinkedQueue$CLQSpliterator.forEachRemaining(ConcurrentLinkedQueue.java:851) 2016-04-21 16:40:31,057 ERROR [err] - at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) 2016-04-21 16:40:31,058 ERROR [err] - at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) 2016-04-21 16:40:31,058 ERROR [err] - at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) 2016-04-21 16:40:31,058 ERROR [err] - at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) 2016-04-21 16:40:31,058 ERROR [err] - at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 2016-04-21 16:40:31,058 ERROR [err] - at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) 2016-04-21 16:40:31,059 ERROR [err] - at net.gtaun.shoebill.samp.SampCallbackManagerImpl$1.onAmxLoad(SampCallbackManagerImpl.java:60)