Browse Source

modding #2014: new server event 'beforeDeleteCharacter'

tags/v0.14.0^2
Shaun 3 months ago
parent
commit
a314308a0f
2 changed files with 43 additions and 10 deletions
  1. +21
    -9
      src/client/ui/templates/characters/characters.js
  2. +22
    -1
      src/server/components/auth.js

+ 21
- 9
src/client/ui/templates/characters/characters.js View File

@@ -222,7 +222,7 @@ define([
this.find('.message').html(msg);
},

onDeleteClick: function () {
onDeleteClick: async function () {
if (!this.selected)
return;

@@ -242,22 +242,34 @@ define([

this.el.addClass('disabled');

client.request({
cpn: 'auth',
method: 'deleteCharacter',
data: {
name: this.selected
},
callback: this.onGetCharacters.bind(this)
const result = await new Promise(res => {
client.request({
cpn: 'auth',
method: 'deleteCharacter',
data: {
name: this.selected
},
callback: res
});
});

if (!result.success) {
this.setMessage(result.msg);
this.el.removeClass('disabled');

return;
}

this.onGetCharacters(result.characterList);
},

onDeleteReset: function () {
this.setMessage('');
this.deleteCount = 0;
this.find('.btnDelete')
.removeClass('deleting')
.html('delete');

setTimeout(this.setMessage.bind(this, ''), 5000);
}
};
});

+ 22
- 1
src/server/components/auth.js View File

@@ -547,6 +547,24 @@ module.exports = {
return;
}

const msgBeforeDeleteCharacter = {
obj: this,
name: data.name,
success: true,
msg: null
};

await eventEmitter.emit('beforeDeleteCharacter', msgBeforeDeleteCharacter);

if (!msgBeforeDeleteCharacter.success) {
msg.callback({
success: false,
msg: msgBeforeDeleteCharacter.msg
});

return;
}

await io.deleteAsync({
key: data.name,
table: 'character'
@@ -576,7 +594,10 @@ module.exports = {
level: leaderboard.getLevel(c.name ? c.name : c)
}));

msg.callback(result);
msg.callback({
success: true,
characterList: result
});
},

permadie: function () {


Loading…
Cancel
Save