Updated move interval

This commit is contained in:
Dennis Postma 2025-02-10 15:33:17 +01:00
parent f2905247ff
commit 0cead14e71

View File

@ -10,7 +10,7 @@ import TeleportService from '#services/characterTeleportService'
export default class CharacterMove extends BaseEvent { export default class CharacterMove extends BaseEvent {
private readonly characterService = CharacterService private readonly characterService = CharacterService
private readonly MOVEMENT_CANCEL_DELAY = 250 private readonly MOVEMENT_CANCEL_DELAY = 250
private readonly MOVEMENT_THROTTLE = 75 // Minimum time between movement requests private readonly MOVEMENT_THROTTLE = 80 // Minimum time between movement requests
private movementTimeouts: Map<string, NodeJS.Timeout> = new Map() private movementTimeouts: Map<string, NodeJS.Timeout> = new Map()
private lastMovementTime: Map<string, number> = new Map() // Track last movement time for each character private lastMovementTime: Map<string, number> = new Map() // Track last movement time for each character
@ -28,10 +28,8 @@ export default class CharacterMove extends BaseEvent {
// Implement request throttling // Implement request throttling
const now = Date.now() const now = Date.now()
const lastMove = this.lastMovementTime.get(this.socket.characterId!) || 0 const lastMove = this.lastMovementTime.get(this.socket.characterId!) || 0
if (now - lastMove < this.MOVEMENT_THROTTLE) { if (now - lastMove < this.MOVEMENT_THROTTLE) return
this.logger.debug('Movement request throttled')
return
}
this.lastMovementTime.set(this.socket.characterId!, now) this.lastMovementTime.set(this.socket.characterId!, now)
// Clear any existing movement timeout // Clear any existing movement timeout