Fix disconnect event processing
This commit is contained in:
@@ -102,8 +102,7 @@ function onPlayerQuit(event, client, quitReasonId) {
|
|||||||
let disconnectName = disconnectReasons[quitReasonId];
|
let disconnectName = disconnectReasons[quitReasonId];
|
||||||
|
|
||||||
let reasonTextEnglish = getLanguageGroupedLocaleString(englishLocale, "DisconnectReasons", disconnectName);
|
let reasonTextEnglish = getLanguageGroupedLocaleString(englishLocale, "DisconnectReasons", disconnectName);
|
||||||
|
let clientName = getPlayerName(client);
|
||||||
updateConnectionLogOnQuit(client, quitReasonId);
|
|
||||||
|
|
||||||
if (getPlayerData(client) != false) {
|
if (getPlayerData(client) != false) {
|
||||||
if (getPlayerData(client).customDisconnectReason != "") {
|
if (getPlayerData(client).customDisconnectReason != "") {
|
||||||
@@ -111,46 +110,31 @@ function onPlayerQuit(event, client, quitReasonId) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logToConsole(LOG_INFO, `👋 Client ${getPlayerDisplayForConsole(client)} disconnected (quitReasonId - ${reasonTextEnglish})`);
|
updateConnectionLogOnQuit(client, disconnectName);
|
||||||
messageDiscordEventChannel(`👋 ${getPlayerName(client)} has left the server (${getLanguageGroupedLocaleString(englishLocale, "DisconnectReasons", reasonTextEnglish)})`);
|
|
||||||
|
|
||||||
getClients().forEach(forClient => {
|
resetClientStuff(client);
|
||||||
messagePlayerNormal(forClient, getLocaleString(forClient, "PlayerLeftServer", getPlayerName(client), getGroupedLocaleString(forClient, "DisconnectReasons", disconnectName)));
|
|
||||||
});
|
|
||||||
|
|
||||||
if (isPlayerLoggedIn(client)) {
|
if (isPlayerLoggedIn(client)) {
|
||||||
if (isPlayerInPaintBall(client)) {
|
|
||||||
stopPaintBall(client);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isPlayerOnJobRoute(client)) {
|
|
||||||
stopJobRoute(client, false, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isPlayerWorking(client)) {
|
|
||||||
stopWorking(client);
|
|
||||||
}
|
|
||||||
|
|
||||||
//if (isPlayerFishing(client)) {
|
|
||||||
// stopFishing(client);
|
|
||||||
//}
|
|
||||||
|
|
||||||
savePlayerToDatabase(client);
|
savePlayerToDatabase(client);
|
||||||
resetClientStuff(client);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getPlayerData(client).loginTimeout != null) {
|
if (getPlayerData(client).loginTimeout != null) {
|
||||||
clearTimeout(getPlayerData(client).loginTimeout);
|
clearTimeout(getPlayerData(client).loginTimeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
playerResourceReady[client.index] = false;
|
playerResourceReady[client.index] = false;
|
||||||
playerResourceStarted[client.index] = false;
|
playerResourceStarted[client.index] = false;
|
||||||
playerInitialized[client.index] = false;
|
playerInitialized[client.index] = false;
|
||||||
playerGUIReady[client.index] = false;
|
playerGUIReady[client.index] = false;
|
||||||
|
|
||||||
getServerData().clients[getPlayerId(client)] = null;
|
getServerData().clients[getPlayerId(client)] = null;
|
||||||
|
|
||||||
|
logToConsole(LOG_INFO, `👋 Client ${getPlayerDisplayForConsole(client)} disconnected (quitReasonId - ${reasonTextEnglish})`);
|
||||||
|
messageDiscordEventChannel(`👋 ${clientName} has left the server (${reasonTextEnglish})`);
|
||||||
|
|
||||||
|
getClients().filter(c => c != client).forEach(forClient => {
|
||||||
|
messagePlayerNormal(forClient, getLocaleString(forClient, "PlayerLeftServer", clientName, getGroupedLocaleString(forClient, "DisconnectReasons", disconnectName)));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
@@ -665,6 +649,10 @@ function onPedExitedVehicle(event, ped, vehicle, seat) {
|
|||||||
if (ped.isType(ELEMENT_PLAYER)) {
|
if (ped.isType(ELEMENT_PLAYER)) {
|
||||||
let client = getClientFromPlayerElement(ped);
|
let client = getClientFromPlayerElement(ped);
|
||||||
if (client != null) {
|
if (client != null) {
|
||||||
|
//if (seat == AGRP_VEHSEAT_DRIVER) {
|
||||||
|
// vehicle.netFlags.sendSync = getVehicleData(vehicle).engine;
|
||||||
|
//}
|
||||||
|
|
||||||
getPlayerData(client).pedState = AGRP_PEDSTATE_READY;
|
getPlayerData(client).pedState = AGRP_PEDSTATE_READY;
|
||||||
|
|
||||||
stopRadioStreamForPlayer(client);
|
stopRadioStreamForPlayer(client);
|
||||||
@@ -715,8 +703,10 @@ function onPedEnteredVehicle(event, ped, vehicle, seat) {
|
|||||||
|
|
||||||
if (seat == AGRP_VEHSEAT_DRIVER) {
|
if (seat == AGRP_VEHSEAT_DRIVER) {
|
||||||
vehicle.engine = getVehicleData(vehicle).engine;
|
vehicle.engine = getVehicleData(vehicle).engine;
|
||||||
|
setEntityData(vehicle, "agrp.engine", getVehicleData(vehicle).engine, true);
|
||||||
|
vehicle.netFlags.sendSync = getVehicleData(vehicle).engine;
|
||||||
|
|
||||||
if (getVehicleData(vehicle).buyPrice > 0) {
|
if (getVehicleData(vehicle).buyPrice > 0 && !doesPlayerHaveVehicleKeys(client, vehicle)) {
|
||||||
messagePlayerAlert(client, getLocaleString(client, "VehicleForSale", getVehicleName(vehicle), `{ALTCOLOUR}${getCurrencyString(getVehicleData(vehicle).buyPrice)}{MAINCOLOUR}`, `{ALTCOLOUR}/vehbuy{MAINCOLOUR}`));
|
messagePlayerAlert(client, getLocaleString(client, "VehicleForSale", getVehicleName(vehicle), `{ALTCOLOUR}${getCurrencyString(getVehicleData(vehicle).buyPrice)}{MAINCOLOUR}`, `{ALTCOLOUR}/vehbuy{MAINCOLOUR}`));
|
||||||
resetVehiclePosition(vehicle);
|
resetVehiclePosition(vehicle);
|
||||||
} else if (getVehicleData(vehicle).rentPrice > 0) {
|
} else if (getVehicleData(vehicle).rentPrice > 0) {
|
||||||
@@ -780,7 +770,9 @@ function onPedEnteredVehicle(event, ped, vehicle, seat) {
|
|||||||
if (getVehicleData(vehicle).ownerType == AGRP_VEHOWNER_JOB) {
|
if (getVehicleData(vehicle).ownerType == AGRP_VEHOWNER_JOB) {
|
||||||
if (getVehicleData(vehicle).ownerId == getPlayerCurrentSubAccount(client).job) {
|
if (getVehicleData(vehicle).ownerId == getPlayerCurrentSubAccount(client).job) {
|
||||||
getPlayerCurrentSubAccount(client).lastJobVehicle = vehicle;
|
getPlayerCurrentSubAccount(client).lastJobVehicle = vehicle;
|
||||||
messagePlayerInfo(client, `Use /startroute to start working in this vehicle`);
|
if (!hasPlayerSeenActionTip(client, "JobRouteStart")) {
|
||||||
|
messagePlayerInfo(client, getGroupedLocaleString(client, "ActionTips", "JobRouteStart", `{ALTCOLOUR}/startroute{MAINCOLOUR}`));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -812,6 +804,9 @@ function onPedEnteringVehicle(event, ped, vehicle, seat) {
|
|||||||
if (ped.isType(ELEMENT_PLAYER)) {
|
if (ped.isType(ELEMENT_PLAYER)) {
|
||||||
let client = getClientFromPlayerElement(ped);
|
let client = getClientFromPlayerElement(ped);
|
||||||
if (client != null) {
|
if (client != null) {
|
||||||
|
if (seat == AGRP_VEHSEAT_DRIVER) {
|
||||||
|
vehicle.netFlags.sendSync = getVehicleData(vehicle).engine;
|
||||||
|
}
|
||||||
onPlayerEnteringVehicle(client, vehicle, seat);
|
onPlayerEnteringVehicle(client, vehicle, seat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -825,6 +820,9 @@ function onPedExitingVehicle(event, ped, vehicle, seat) {
|
|||||||
if (ped.isType(ELEMENT_PLAYER)) {
|
if (ped.isType(ELEMENT_PLAYER)) {
|
||||||
let client = getClientFromPlayerElement(ped);
|
let client = getClientFromPlayerElement(ped);
|
||||||
if (client != null) {
|
if (client != null) {
|
||||||
|
if (seat == AGRP_VEHSEAT_DRIVER) {
|
||||||
|
vehicle.netFlags.sendSync = getVehicleData(vehicle).engine;
|
||||||
|
}
|
||||||
onPlayerExitingVehicle(client, vehicle, seat);
|
onPlayerExitingVehicle(client, vehicle, seat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user