forked from MagicBane/Server
player update handled in new thread
This commit is contained in:
@@ -31,7 +31,6 @@ import engine.net.ByteBufferWriter;
|
||||
import engine.net.DispatchMessage;
|
||||
import engine.net.client.msg.UpdateStateMsg;
|
||||
import engine.powers.EffectsBase;
|
||||
import engine.powers.effectmodifiers.AbstractEffectModifier;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
@@ -1841,7 +1840,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
||||
}
|
||||
|
||||
//updates
|
||||
public void update() {
|
||||
public void update(Boolean newSystem) {
|
||||
}
|
||||
|
||||
public void updateRegen() {
|
||||
@@ -1861,16 +1860,16 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
||||
try {
|
||||
switch (updateType) {
|
||||
case ALL:
|
||||
update();
|
||||
update(false);
|
||||
break;
|
||||
case REGEN:
|
||||
updateRegen();
|
||||
break;
|
||||
case LOCATION:
|
||||
update();
|
||||
update(false);
|
||||
break;
|
||||
case MOVEMENTSTATE:
|
||||
update();
|
||||
update(false);
|
||||
break;
|
||||
case FLIGHT:
|
||||
updateFlight();
|
||||
|
||||
@@ -270,7 +270,7 @@ public abstract class AbstractWorldObject extends AbstractGameObject {
|
||||
this.effects.remove(name);
|
||||
if (this.getObjectType().equals(GameObjectType.PlayerCharacter))
|
||||
if (name.equals("Flight")) {
|
||||
((PlayerCharacter) this).update();
|
||||
((PlayerCharacter) this).update(false);
|
||||
PlayerCharacter.GroundPlayer((PlayerCharacter) this);
|
||||
}
|
||||
}
|
||||
@@ -385,7 +385,7 @@ public abstract class AbstractWorldObject extends AbstractGameObject {
|
||||
if (source.equals("Flight")) {
|
||||
//ground player
|
||||
if (this.getObjectType().equals(GameObjectType.PlayerCharacter)) {
|
||||
((PlayerCharacter) this).update();
|
||||
((PlayerCharacter) this).update(false);
|
||||
PlayerCharacter.GroundPlayer((PlayerCharacter) this);
|
||||
}
|
||||
}
|
||||
@@ -414,7 +414,7 @@ public abstract class AbstractWorldObject extends AbstractGameObject {
|
||||
if (source.equals("Flight")) {
|
||||
//ground player
|
||||
if (this.getObjectType().equals(GameObjectType.PlayerCharacter)) {
|
||||
((PlayerCharacter) this).update();
|
||||
((PlayerCharacter) this).update(false);
|
||||
PlayerCharacter.GroundPlayer((PlayerCharacter) this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@ import engine.job.JobScheduler;
|
||||
import engine.jobs.DeferredPowerJob;
|
||||
import engine.jobs.FinishSpireEffectJob;
|
||||
import engine.jobs.NoTimeJob;
|
||||
import engine.jobs.RefreshGroupJob;
|
||||
import engine.math.Bounds;
|
||||
import engine.math.FastMath;
|
||||
import engine.math.Vector3fImmutable;
|
||||
@@ -2102,7 +2101,7 @@ public class PlayerCharacter extends AbstractCharacter {
|
||||
this.lastUpdateTime = System.currentTimeMillis();
|
||||
this.lastStamUpdateTime = System.currentTimeMillis();
|
||||
|
||||
this.update();
|
||||
this.update(false);
|
||||
|
||||
PowersManager.applyPower(this, this, Vector3fImmutable.ZERO, -1661758934, 40, false);
|
||||
|
||||
@@ -2923,7 +2922,7 @@ public class PlayerCharacter extends AbstractCharacter {
|
||||
public synchronized void grantXP(int xp) {
|
||||
if(this.promotionClass == null && this.level == 10){
|
||||
this.setOverFlowEXP(0);
|
||||
this.update();
|
||||
this.update(false);
|
||||
this.incVer();
|
||||
this.recalculate();
|
||||
this.calculateMaxHealthManaStamina();
|
||||
@@ -3084,7 +3083,7 @@ public class PlayerCharacter extends AbstractCharacter {
|
||||
}
|
||||
|
||||
if (charReloadRequired) {
|
||||
this.update();
|
||||
this.update(false);
|
||||
this.incVer();
|
||||
this.recalculate();
|
||||
this.calculateMaxHealthManaStamina();
|
||||
@@ -3157,7 +3156,7 @@ public class PlayerCharacter extends AbstractCharacter {
|
||||
bonus += this.bonuses.getFloatPercentNullZero(ModType.Speed, SourceType.None);
|
||||
|
||||
// TODO get equip bonus
|
||||
this.update();
|
||||
this.update(false);
|
||||
this.speedMod = bonus;
|
||||
}
|
||||
|
||||
@@ -4839,7 +4838,10 @@ public class PlayerCharacter extends AbstractCharacter {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
public void update(Boolean newSystem) {
|
||||
|
||||
if(!newSystem)
|
||||
return;
|
||||
|
||||
if (this.updateLock.writeLock().tryLock()) {
|
||||
try {
|
||||
@@ -5547,7 +5549,7 @@ public class PlayerCharacter extends AbstractCharacter {
|
||||
@Override
|
||||
public final void setIsCasting(final boolean isCasting) {
|
||||
if (this.isCasting != isCasting)
|
||||
this.update();
|
||||
this.update(false);
|
||||
this.isCasting = isCasting;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user