mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-15 08:25:09 +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
|
charGuildmates[i].CID = char.ID
|
||||||
}
|
}
|
||||||
guildmates = append(guildmates, charGuildmates...)
|
guildmates = append(guildmates, charGuildmates...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(guildmates) > 255 { // Uint8
|
if len(guildmates) > 255 { // Uint8
|
||||||
guildmates = guildmates[:255]
|
guildmates = guildmates[:255]
|
||||||
@@ -176,7 +176,13 @@ func (s *Server) deleteCharacter(cid int, token string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err // Invalid token
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,10 @@ func (s *Session) handlePacket(pkt []byte) error {
|
|||||||
characterID := int(bf.ReadUint32())
|
characterID := int(bf.ReadUint32())
|
||||||
s.server.deleteCharacter(characterID, loginTokenString)
|
s.server.deleteCharacter(characterID, loginTokenString)
|
||||||
sugar.Infof("Deleted character ID: %v\n", characterID)
|
sugar.Infof("Deleted character ID: %v\n", characterID)
|
||||||
|
err := s.cryptConn.SendPacket([]byte{0x01}) // DEL_SUCCESS
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
sugar.Infof("Got unknown request type %s, data:\n%s\n", reqType, hex.Dump(bf.DataFromCurrent()))
|
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';
|
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() {
|
function launch() {
|
||||||
document.getElementById('game_starting').style.display = 'block';
|
document.getElementById('game_starting').style.display = 'block';
|
||||||
try {
|
try {
|
||||||
@@ -326,6 +338,11 @@ function launch() {
|
|||||||
}, 3000);
|
}, 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function deleteCharacter(id) {
|
||||||
|
window.external.deleteCharacter(id);
|
||||||
|
checkDelete();
|
||||||
|
}
|
||||||
|
|
||||||
function autoWarning() {
|
function autoWarning() {
|
||||||
let autoBox = document.getElementById('auto_box');
|
let autoBox = document.getElementById('auto_box');
|
||||||
if (autoBox.checked) {
|
if (autoBox.checked) {
|
||||||
@@ -404,18 +421,16 @@ function setModalContent(preset, url) {
|
|||||||
<br>it will be gone forever. \
|
<br>it will be gone forever. \
|
||||||
</span> \
|
</span> \
|
||||||
';
|
';
|
||||||
modal.querySelector('.dialog .btns').innerHTML = ' \
|
modal.querySelector(".dialog .btns").innerHTML = ' \
|
||||||
<ul> \
|
<ul> \
|
||||||
<li> \
|
<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> \
|
||||||
<li> \
|
<li> \
|
||||||
<div onmouseover="soundSel()" onclick="soundOk(); toggleModal(0)">Cancel</div> \
|
<div onmouseover="soundSel();" onclick="soundOk(); toggleModal(0)">Cancel</div> \
|
||||||
</li> \
|
</li> \
|
||||||
</ul> \
|
</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;
|
break;
|
||||||
case 'addCharNew':
|
case 'addCharNew':
|
||||||
modal.querySelector('.dialog p').innerHTML = ' \
|
modal.querySelector('.dialog p').innerHTML = ' \
|
||||||
|
|||||||
Reference in New Issue
Block a user