Skip to content
Snippets Groups Projects
Commit 94a6a79b authored by gentlespoon's avatar gentlespoon Committed by Melledy
Browse files

Fix null reference on stamina timer when paused player disconnects.

parent c9e8d6ca
Branches
Tags
No related merge requests found
......@@ -29,19 +29,16 @@ public class StaminaManager {
private Position previousCoordinates = new Position(0, 0, 0);
private MotionState currentState = MotionState.MOTION_STANDBY;
private MotionState previousState = MotionState.MOTION_STANDBY;
private Timer sustainedStaminaHandlerTimer;
private final Timer sustainedStaminaHandlerTimer = new Timer();
private final SustainedStaminaHandler handleSustainedStamina = new SustainedStaminaHandler();
private boolean timerRunning = false;
private GameSession cachedSession = null;
private GameEntity cachedEntity = null;
private int staminaRecoverDelay = 0;
private boolean isInSkillMove = false;
public boolean getIsInSkillMove() {
return isInSkillMove;
}
public void setIsInSkillMove(boolean b) {
isInSkillMove = b;
}
......@@ -139,24 +136,23 @@ public class StaminaManager {
entity.getWorld().broadcastPacket(new PacketEntityFightPropUpdateNotify(entity, FightProperty.FIGHT_PROP_CUR_HP));
entity.getWorld().broadcastPacket(new PacketLifeStateChangeNotify(0, entity, LifeState.LIFE_DEAD));
player.getScene().removeEntity(entity);
((EntityAvatar) entity).onDeath(dieType, 0);
((EntityAvatar)entity).onDeath(dieType, 0);
}
public void startSustainedStaminaHandler() {
if (!player.isPaused()) {
if (sustainedStaminaHandlerTimer == null) {
sustainedStaminaHandlerTimer = new Timer();
sustainedStaminaHandlerTimer.scheduleAtFixedRate(new SustainedStaminaHandler(), 0, 200);
Grasscutter.getLogger().debug("[MovementManager] SustainedStaminaHandlerTimer started");
}
if (!player.isPaused() && !timerRunning) {
timerRunning = true;
sustainedStaminaHandlerTimer.scheduleAtFixedRate(handleSustainedStamina, 0, 200);
// Grasscutter.getLogger().debug("[MovementManager] SustainedStaminaHandlerTimer started");
}
}
public void stopSustainedStaminaHandler() {
Grasscutter.getLogger().debug("[MovementManager] SustainedStaminaHandlerTimer stopped");
sustainedStaminaHandlerTimer.cancel();
sustainedStaminaHandlerTimer = null;
if (timerRunning) {
timerRunning = false;
sustainedStaminaHandlerTimer.cancel();
// Grasscutter.getLogger().debug("[MovementManager] SustainedStaminaHandlerTimer stopped");
}
}
// Handlers
......
......@@ -872,11 +872,11 @@ public class Player {
}
public void onPause() {
staminaManager.stopSustainedStaminaHandler();
getStaminaManager().stopSustainedStaminaHandler();
}
public void onUnpause() {
staminaManager.startSustainedStaminaHandler();
getStaminaManager().startSustainedStaminaHandler();
}
public void sendPacket(BasePacket packet) {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment