mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-12 23:14:36 +01:00
handle character deletion
This commit is contained in:
@@ -162,7 +162,7 @@ func (s *Server) getGuildmatesForCharacters(chars []character) ([]members) {
|
||||
charGuildmates[i].CID = char.ID
|
||||
}
|
||||
guildmates = append(guildmates, charGuildmates...)
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(guildmates) > 255 { // Uint8
|
||||
guildmates = guildmates[:255]
|
||||
@@ -176,7 +176,13 @@ func (s *Server) deleteCharacter(cid int, token string) error {
|
||||
if err != nil {
|
||||
return err // Invalid token
|
||||
}
|
||||
_, err = s.db.Exec("UPDATE characters SET deleted = true WHERE id = $1", cid)
|
||||
var isNew bool
|
||||
err = s.db.QueryRow("SELECT is_new_character FROM characters WHERE id = $1", cid).Scan(&isNew)
|
||||
if isNew {
|
||||
_, err = s.db.Exec("DELETE FROM characters WHERE id = $1", cid)
|
||||
} else {
|
||||
_, err = s.db.Exec("UPDATE characters SET deleted = true WHERE id = $1", cid)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -63,6 +63,10 @@ func (s *Session) handlePacket(pkt []byte) error {
|
||||
characterID := int(bf.ReadUint32())
|
||||
s.server.deleteCharacter(characterID, loginTokenString)
|
||||
sugar.Infof("Deleted character ID: %v\n", characterID)
|
||||
err := s.cryptConn.SendPacket([]byte{0x01}) // DEL_SUCCESS
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
default:
|
||||
sugar.Infof("Got unknown request type %s, data:\n%s\n", reqType, hex.Dump(bf.DataFromCurrent()))
|
||||
}
|
||||
|
||||
@@ -305,6 +305,18 @@ function checkAuth() {
|
||||
document.getElementById('processing').style.display = 'none';
|
||||
}
|
||||
|
||||
function checkDelete() {
|
||||
let deleteResult = window.external.getLastAuthResult();
|
||||
if (deleteResult == 'DEL_PROGRESS') {
|
||||
setTimeout(checkDelete, 10);
|
||||
return;
|
||||
} else if (deleteResult == 'DEL_SUCCESS') {
|
||||
doLogin(0);
|
||||
switchPrompt();
|
||||
toggleModal(0);
|
||||
}
|
||||
}
|
||||
|
||||
function launch() {
|
||||
document.getElementById('game_starting').style.display = 'block';
|
||||
try {
|
||||
@@ -326,6 +338,11 @@ function launch() {
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
function deleteCharacter(id) {
|
||||
window.external.deleteCharacter(id);
|
||||
checkDelete();
|
||||
}
|
||||
|
||||
function autoWarning() {
|
||||
let autoBox = document.getElementById('auto_box');
|
||||
if (autoBox.checked) {
|
||||
@@ -404,18 +421,16 @@ function setModalContent(preset, url) {
|
||||
<br>it will be gone forever. \
|
||||
</span> \
|
||||
';
|
||||
modal.querySelector('.dialog .btns').innerHTML = ' \
|
||||
modal.querySelector(".dialog .btns").innerHTML = ' \
|
||||
<ul> \
|
||||
<li> \
|
||||
<div onmouseover="soundSel()" onclick="soundOk(); addLog(\'Not yet implemented.\', \'error\'); toggleModal(0)">Yes</div> \
|
||||
<div onmouseover="soundSel();" onclick="soundOk(); deleteCharacter(\''+selectedUid+'\')">Yes</div> \
|
||||
</li> \
|
||||
<li> \
|
||||
<div onmouseover="soundSel()" onclick="soundOk(); toggleModal(0)">Cancel</div> \
|
||||
<div onmouseover="soundSel();" onclick="soundOk(); toggleModal(0)">Cancel</div> \
|
||||
</li> \
|
||||
</ul> \
|
||||
';
|
||||
// Uses the launcher delete
|
||||
// modal.querySelector(".dialog .btns").innerHTML = "<ul><li><div unselectable=\"on\" onselectstart=\"return false;\" onmouseover=\"soundSel();\" onclick=\"soundOk(); window.external.deleteCharacter('"+selectedUid+"'); toggleModal(0);\" style=\"opacity: 1;\">Yes</div></li><li><div onmouseover=\"soundSel();\" onclick=\"soundOk(); toggleModal(0);\" unselectable=\"on\" onselectstart=\"return false;\" class=\"\">Cancel</div></li></ul>";
|
||||
break;
|
||||
case 'addCharNew':
|
||||
modal.querySelector('.dialog p').innerHTML = ' \
|
||||
|
||||
Reference in New Issue
Block a user