Changed when callbacks used, impv off buff removal

This commit is contained in:
Treeku
2014-04-06 09:48:26 +01:00
parent 06ecc10be9
commit 9e83367db7
+12 -18
View File
@@ -174,7 +174,7 @@ public class BuffService implements INetworkDispatch {
@SuppressWarnings("unused")
@Override
public void run() {
if (buffer == null)
if (buffer == null || buffer.getClient() == null)
removeBuffFromCreature(target, buff);
if (target.getWorldPosition().getDistance2D(buffer.getWorldPosition()) > 80) {
@@ -190,23 +190,6 @@ public class BuffService implements INetworkDispatch {
target.playEffectObject(effect, buff.getBuffName());
}
if (!buff.getCallback().equals("")) {
if (FileUtilities.doesFileExist("scripts/buffs/" + buff.getBuffName() + ".py")) {
scheduler.schedule(new Runnable() {
@Override
public void run() {
PyObject method = core.scriptService.getMethod("scripts/buffs/", buff.getBuffName(), buff.getCallback());
if (method != null && method.isCallable()) {
method.__call__(Py.java2py(core), Py.java2py(target), Py.java2py(buff));
}
}
}, 0, TimeUnit.SECONDS);
}
}
if (buffer != null && target.getGroupId() != 0 && target.getGroupId() == buffer.getGroupId()) {
buff.setGroupBufferId(buffer.getObjectID());
}
@@ -233,6 +216,17 @@ public class BuffService implements INetworkDispatch {
if(buff.getEffect1Name().length() > 0) core.skillModService.deductSkillMod(creature, buff.getEffect4Name(), (int) buff.getEffect4Value());
if(buff.getEffect1Name().length() > 0) core.skillModService.deductSkillMod(creature, buff.getEffect5Name(), (int) buff.getEffect5Value());
}
if (!buff.getCallback().equals("none") && !buff.getCallback().equals("")) {
if (FileUtilities.doesFileExist("scripts/buffs/" + buff.getBuffName() + ".py")) {
PyObject method = core.scriptService.getMethod("scripts/buffs/", buff.getBuffName(), buff.getCallback());
if (method != null && method.isCallable()) {
method.__call__(Py.java2py(core), Py.java2py(target), Py.java2py(buff));
}
}
}
creature.removeBuff(buff);
for (String effect : buff.getParticleEffect().split(",")) {