diff --git a/src/server/components/auth.js b/src/server/components/auth.js index bbe21089..7a36db04 100644 --- a/src/server/components/auth.js +++ b/src/server/components/auth.js @@ -57,7 +57,7 @@ module.exports = { customChannels: [], play: async function (data) { - if (!this.username) + if (!this.username || this.charname) return; let character = this.characters[data.data.name]; diff --git a/src/server/components/inventory.js b/src/server/components/inventory.js index 15f51a05..abecb8a6 100644 --- a/src/server/components/inventory.js +++ b/src/server/components/inventory.js @@ -148,7 +148,7 @@ module.exports = { learnAbility: function ({ itemId, slot }) { let item = this.findItem(itemId); let statValues = this.obj.stats.values; - if (!item) + if (!item || item.eq) return; else if (!item.spell) { item.eq = false; diff --git a/src/server/components/mob.js b/src/server/components/mob.js index a37cc327..cd6e8285 100644 --- a/src/server/components/mob.js +++ b/src/server/components/mob.js @@ -130,8 +130,9 @@ module.exports = { /* eslint-disable-next-line no-console */ console.log('MOB HAS NO SPELLBOOK BUT WANTS TO RESET ROTATION'); /* eslint-disable-next-line no-console */ - console.log(obj.name, obj.zoneName, obj.x, obj.y); + console.log(obj.name, obj.zone, obj.zoneName, obj.x, obj.y, obj.components.map(c => c.type).join(',')); } + obj.spellbook.resetRotation(); } } diff --git a/src/server/security/connections.js b/src/server/security/connections.js index 65b53509..8ab275d3 100644 --- a/src/server/security/connections.js +++ b/src/server/security/connections.js @@ -12,6 +12,9 @@ module.exports = { playing: 0, onHandshake: function (socket) { + if (this.players.some(f => f.socket.id === socket.id)) + return; + const p = objects.build(); p.socket = socket; p.addComponent('auth'); @@ -107,6 +110,7 @@ module.exports = { //A hack to allow us to actually call methods again (like retrieve the player list) player.dead = false; player.permadead = false; + delete player.auth.charname; this.modifyPlayerCount(-1); },