Merge branch 'nightly' into organizing
This commit is contained in:
@@ -106,8 +106,6 @@ class ClanMemberData {
|
||||
|
||||
function initClanScript() {
|
||||
logToConsole(LOG_INFO, "[VRR.Clan]: Initializing clans script ...");
|
||||
getServerData().clans = loadClansFromDatabase();
|
||||
setAllClanDataIndexes();
|
||||
logToConsole(LOG_INFO, "[VRR.Clan]: Clan script initialized successfully!");
|
||||
return true;
|
||||
}
|
||||
@@ -130,7 +128,7 @@ function loadClansFromDatabase() {
|
||||
//tempClanData.members = loadClanMembersFromDatabase(tempClanData.databaseId);
|
||||
tempClanData.ranks = loadClanRanksFromDatabase(tempClanData.databaseId);
|
||||
tempClans.push(tempClanData);
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Clan]: Clan '${tempClanData.name}' loaded from database successfully!`);
|
||||
logToConsole(LOG_DEBUG, `[VRR.Clan]: Clan '${tempClanData.name}' loaded from database successfully!`);
|
||||
}
|
||||
}
|
||||
freeDatabaseQuery(dbQuery);
|
||||
@@ -211,7 +209,7 @@ function createClanRank(clanId, rankId, rankName) {
|
||||
let rankIndex = getClanData(clanId).ranks.push(tempClanRankData);
|
||||
setAllClanDataIndexes();
|
||||
|
||||
saveAllClanRanksToDatabase(clanId);
|
||||
saveClanRanksToDatabase(clanId);
|
||||
return rankIndex;
|
||||
}
|
||||
|
||||
@@ -223,7 +221,7 @@ function removeClanRank(clanId, rankId) {
|
||||
return false;
|
||||
}
|
||||
|
||||
quickDatabaseQuery(`DELETE FROM clan_rank WHERE clan_rank_id = ${tempClanRankData.database}`);
|
||||
quickDatabaseQuery(`UPDATE clan_rank SET clan_rank_deleted = 1, clan_rank_when_deleted = UNIX_TIMESTAMP(), clan_rank_who_deleted = ${getPlayerData(client).accountData.databaseId} WHERE biz_id ${tempClanRankData.database}`);
|
||||
getClanData(clanId).ranks.splice(tempClanRankData.index, 1);
|
||||
}
|
||||
|
||||
@@ -241,7 +239,7 @@ function listClansCommand(command, params, client) {
|
||||
|
||||
let chunkedList = splitArrayIntoChunks(nameList, 5);
|
||||
|
||||
messagePlayerInfo(client, `{clanOrange}== {jobYellow}Clans {clanOrange}====================================`);
|
||||
messagePlayerInfo(client, makeChatBoxSectionHeader(getLocaleString(client, "HeaderClansList")));
|
||||
|
||||
for(let i in chunkedList) {
|
||||
messagePlayerInfo(client, chunkedList[i].join(", "));
|
||||
@@ -268,7 +266,7 @@ function listClanRanksCommand(command, params, client) {
|
||||
|
||||
let chunkedList = splitArrayIntoChunks(rankNameList, 5);
|
||||
|
||||
messagePlayerInfo(client, `{clanOrange}== {jobYellow}Clan Ranks (${getClanData(clanId).name}) {clanOrange}=====================`);
|
||||
messagePlayerInfo(client, makeChatBoxSectionHeader(getLocaleString(client, "HeaderClanRanksList")));
|
||||
|
||||
for(let i in chunkedList) {
|
||||
messagePlayerInfo(client, chunkedList[i].join(", "));
|
||||
@@ -290,7 +288,7 @@ function createClanCommand(command, params, client) {
|
||||
|
||||
// Create clan without owner. Can set owner with /clanowner afterward
|
||||
createClan(params);
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} {MAINCOLOUR}created clan {clanOrange}${params}`);
|
||||
messageAdmins(`{adminOrange}${getPlayerName(client)}{MAINCOLOUR} created clan {clanOrange}${params}`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -308,8 +306,8 @@ function deleteClanCommand(command, params, client) {
|
||||
return false;
|
||||
}
|
||||
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} {MAINCOLOUR}deleted clan {clanOrange}${getClanData(clanId).name}`);
|
||||
deleteClan(clanId);
|
||||
messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR}deleted clan {clanOrange}${getClanData(clanId).name}`);
|
||||
deleteClan(clanId, getPlayerData(client).accountData.databaseId);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -339,10 +337,13 @@ function setClanOwnerCommand(command, params, client) {
|
||||
}
|
||||
|
||||
getClanData(clanId).owner = getPlayerCurrentSubAccount(targetClient).databaseId;
|
||||
getClanData(clanId).needsSaved = true;
|
||||
|
||||
getPlayerCurrentSubAccount(targetClient).clan = getClanData(clanId).databaseId;
|
||||
getPlayerCurrentSubAccount(targetClient).clanFlags = getClanFlagValue("All");
|
||||
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} {MAINCOLOUR}set clan {clanOrange}${getClanData(clanId).name} {MAINCOLOUR}owner to {ALTCOLOUR}${getCharacterFullName(targetClient)}`);
|
||||
//messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR}set clan {clanOrange}${getClanData(clanId).name} {MAINCOLOUR}owner to {ALTCOLOUR}${getCharacterFullName(targetClient)}`);
|
||||
messagePlayerSuccess(client, `You changed the clan owner to {ALTCOLOUR}${getCharacterFullName(targetClient)}`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -365,9 +366,11 @@ function setClanTagCommand(command, params, client) {
|
||||
return false;
|
||||
}
|
||||
|
||||
getClanData(clanId).params = params;
|
||||
getClanData(clanId).tag = params;
|
||||
getClanData(clanId).needsSaved = true;
|
||||
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} {MAINCOLOUR}set clan {clanOrange}${getClanData(clanId).index} {MAINCOLOUR}tag to {ALTCOLOUR}${params}`);
|
||||
//messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR}set clan {clanOrange}${getClanData(clanId).index} {MAINCOLOUR}tag to {ALTCOLOUR}${params}`);
|
||||
messagePlayerSuccess(client, `You changed the clan tag to {ALTCOLOUR}${params}`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -391,8 +394,10 @@ function setClanNameCommand(command, params, client) {
|
||||
}
|
||||
|
||||
getClanData(clanId).name = params;
|
||||
getClanData(clanId).needsSaved = true;
|
||||
|
||||
messageAdmins(`{ALTCOLOUR}${getPlayerName(client)} {MAINCOLOUR}set clan {clanOrange}${getClanData(clanId).index} {MAINCOLOUR}name to {ALTCOLOUR}${params}`);
|
||||
//messageAdmins(`{adminOrange}${getPlayerName(client)} {MAINCOLOUR}set clan {clanOrange}${getClanData(clanId).index} {MAINCOLOUR}name to {ALTCOLOUR}${params}`);
|
||||
messagePlayerSuccess(client, `You changed the clan name to {ALTCOLOUR}${params}`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -453,8 +458,9 @@ function deleteClanRankCommand(command, params, client) {
|
||||
}
|
||||
|
||||
removeClanRank(clanId, rankId);
|
||||
getClanData(clanId).needsSaved = true;
|
||||
|
||||
messagePlayerSuccess(client, `You removed the {ALTCOLOUR}${tempRankName} {MAINCOLOUR}rank`);
|
||||
messagePlayerSuccess(client, `You removed the {ALTCOLOUR}${tempRankName}{MAINCOLOUR} rank`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -496,7 +502,7 @@ function setClanMemberTagCommand(command, params, client) {
|
||||
}
|
||||
}
|
||||
|
||||
getPlayerCurrentSubAccount(targetClient).ClanTag = getParam(params, " ", 2);
|
||||
getPlayerCurrentSubAccount(targetClient).clanTag = getParam(params, " ", 2);
|
||||
|
||||
messagePlayerSuccess(client, `You set {ALTCOLOUR}${getCharacterFullName(targetClient)}'s {MAINCOLOUR}clan tag to {ALTCOLOUR}${getParam(params, " ", 2)}`);
|
||||
messagePlayerAlert(client, `{ALTCOLOUR}${getCharacterFullName(targetClient)} {MAINCOLOUR}set your clan tag to {ALTCOLOUR}${getParam(params, " ", 2)}`);
|
||||
@@ -530,7 +536,8 @@ function setClanRankTagCommand(command, params, client) {
|
||||
}
|
||||
}
|
||||
|
||||
getServerData().clans[clanId].rankId[rankId].customTag = newTag;
|
||||
getClanRankData(clanId, rankId).customTag = newTag;
|
||||
getClanRankData(clanId, rankId).needsSaved = true;
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -578,7 +585,8 @@ function setClanRankLevelCommand(command, params, client) {
|
||||
return false;
|
||||
}
|
||||
|
||||
getServerData().clans[clanId].rankId[rankId].level = toInteger(newLevel);
|
||||
getClanRankData(clanId, rankId).level = toInteger(newLevel);
|
||||
getClanRankData(clanId, rankId).needsSaved = true;
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -717,7 +725,8 @@ function addClanRankFlagCommand(command, params, client) {
|
||||
|
||||
let flagValue = getClanFlagValue(getParam(params, " ", 2));
|
||||
|
||||
addBitFlag(getClanRankData(clanId, rankId).flags, flagValue);
|
||||
getClanRankData(clanId, rankId).flags = addBitFlag(getClanRankData(clanId, rankId).flags, flagValue);
|
||||
getClanRankData(clanId, rankId).needsSaved = true;
|
||||
messagePlayerSuccess(client, `You added the {ALTCOLOUR}${getParam(params, " ", 2)} {MAINCOLOUR}clan flag to rank {ALTCOLOUR}${getClanRankData(clanId, rankId).name}`);
|
||||
}
|
||||
|
||||
@@ -755,7 +764,8 @@ function removeClanRankFlagCommand(command, params, client) {
|
||||
|
||||
let flagValue = getClanFlagValue(getParam(params, " ", 2));
|
||||
|
||||
removeBitFlag(getClanRankData(clanId, rankId).flags, flagValue);
|
||||
getClanRankData(clanId, rankId).flags = removeBitFlag(getClanRankData(clanId, rankId).flags, flagValue);
|
||||
getClanRankData(clanId, rankId).needsSaved = true;
|
||||
messagePlayerSuccess(client, `You removed the {ALTCOLOUR}${getParam(params, " ", 2)} {MAINCOLOUR}clan flag from rank {ALTCOLOUR}${getClanRankData(clanId, rankId).name}`);
|
||||
}
|
||||
|
||||
@@ -799,8 +809,7 @@ function showClanRankFlagsCommand(command, params, client) {
|
||||
|
||||
let chunkedList = splitArrayIntoChunks(flagList, 6);
|
||||
|
||||
messagePlayerInfo(client, `{clanOrange}== {jobYellow}Clan Rank Flags (${getClanRankData(clanId, rankId).name}){clanOrange}===================`);
|
||||
|
||||
makeChatBoxSectionHeader(client, getLocaleString(client, "ClanRankFlags"), getClanRankData(clanId, rankId).name);
|
||||
for(let i in chunkedList) {
|
||||
messagePlayerInfo(client, chunkedList[i].join("{MAINCOLOUR}, "));
|
||||
}
|
||||
@@ -881,6 +890,7 @@ function setClanRankTitleCommand(command, params, client) {
|
||||
|
||||
let oldRankName = getClanRankData(clanId, rankId).name;
|
||||
getClanRankData(clanId, rankId).name = getParam(params, " ", 2);
|
||||
getClanRankData(clanId, rankId).needsSaved = true;
|
||||
messagePlayerSuccess(client, `You changed the name of rank ${rankId} from {ALTCOLOUR}${oldRankName} {MAINCOLOUR}to {ALTCOLOUR}${params}`);
|
||||
}
|
||||
|
||||
@@ -941,7 +951,7 @@ function setClanMemberRankCommand(command, params, client) {
|
||||
let oldClanRank = getClanRankData(clanId, getPlayerClanRank(targetClient));
|
||||
getPlayerCurrentSubAccount(targetClient).clanRank = getClanRankData(clanId, rankId).databaseId;
|
||||
getPlayerCurrentSubAccount(targetClient).clanRankIndex = rankId;
|
||||
messagePlayerSuccess(client, `You changed {ALTCOLOUR}${getCharacterFullName(targetClient)}'s {MAINCOLOUR}rank from {ALTCOLOUR}${oldClanRank.name} {MAINCOLOUR}to {ALTCOLOUR}${getClanRankData(clanId, rankId).name}`);
|
||||
messagePlayerSuccess(client, `You changed {ALTCOLOUR}${getCharacterFullName(targetClient)}'s{MAINCOLOUR} rank from {ALTCOLOUR}${oldClanRank.name}{MAINCOLOUR} to {ALTCOLOUR}${getClanRankData(clanId, rankId).name}`);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -966,12 +976,12 @@ function createClan(name) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function deleteClan(clanId) {
|
||||
saveClansToDatabase();
|
||||
function deleteClan(clanId, whoDeleted = 0) {
|
||||
//saveAllClansToDatabase();
|
||||
|
||||
let dbConnection = connectToDatabase();
|
||||
if(dbConnection) {
|
||||
let dbQuery = queryDatabase(dbConnection, `UPDATE clan_main SET clan_deleted = 1 WHERE clan_id = ${clanId}`);
|
||||
let dbQuery = queryDatabase(dbConnection, `UPDATE clan_main SET clan_deleted = 1, clan_when_deleted = UNIX_TIMESTAMP, clan_who_deleted = ${whoDeleted} WHERE clan_id = ${clanId}`);
|
||||
freeDatabaseQuery(dbQuery);
|
||||
disconnectFromDatabase(dbConnection);
|
||||
|
||||
@@ -1024,12 +1034,20 @@ function doesClanIdExist(clanId) {
|
||||
// ===========================================================================
|
||||
|
||||
function reloadAllClans() {
|
||||
if(getServerConfig().devServer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
getServerData().clans = loadClansFromDatabase();
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function saveAllClanRanksToDatabase(clanId) {
|
||||
function saveClanRanksToDatabase(clanId) {
|
||||
if(getServerConfig().devServer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let ranks = getServerData().clans[clanId].ranks;
|
||||
for(let i in ranks) {
|
||||
saveClanRankToDatabase(clanId, i);
|
||||
@@ -1045,9 +1063,13 @@ function saveClanToDatabase(clanId) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!tempClanData.needsSaved) {
|
||||
return false;
|
||||
}
|
||||
if(tempClanData.databaseId == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!tempClanData.needsSaved) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let dbConnection = connectToDatabase();
|
||||
if(dbConnection) {
|
||||
@@ -1079,7 +1101,7 @@ function saveClanToDatabase(clanId) {
|
||||
disconnectFromDatabase(dbConnection);
|
||||
}
|
||||
|
||||
saveAllClanRanksToDatabase(clanId);
|
||||
saveClanRanksToDatabase(clanId);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1091,41 +1113,41 @@ function saveClanToDatabase(clanId) {
|
||||
function saveClanRankToDatabase(clanId, rankId) {
|
||||
let tempClanRankData = getClanRankData(clanId, rankId);
|
||||
|
||||
if(!tempClanRankData.needsSaved) {
|
||||
return false;
|
||||
}
|
||||
if(!tempClanRankData.needsSaved) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let dbConnection = connectToDatabase();
|
||||
if(dbConnection) {
|
||||
let safeName = escapeDatabaseString(dbConnection, tempClanRankData.name);
|
||||
let safeTag = escapeDatabaseString(dbConnection, tempClanRankData.customTag);
|
||||
//let safeTitle = escapeDatabaseString(dbConnection, tempClanRankData.name);
|
||||
let safeName = escapeDatabaseString(dbConnection, tempClanRankData.name);
|
||||
let safeTag = escapeDatabaseString(dbConnection, tempClanRankData.customTag);
|
||||
//let safeTitle = escapeDatabaseString(dbConnection, tempClanRankData.name);
|
||||
|
||||
let data = [
|
||||
["clan_rank_name", safeName],
|
||||
["clan_rank_clan", tempClanRankData.clan],
|
||||
["clan_rank_custom_tag", safeTag],
|
||||
//["clan_rank_title", safeTitle],
|
||||
["clan_rank_flags", tempClanRankData.flags],
|
||||
["clan_rank_level", tempClanRankData.level],
|
||||
["clan_rank_enabled", boolToInt(tempClanRankData.enabled)],
|
||||
];
|
||||
let data = [
|
||||
["clan_rank_name", safeName],
|
||||
["clan_rank_clan", tempClanRankData.clan],
|
||||
["clan_rank_custom_tag", safeTag],
|
||||
//["clan_rank_title", safeTitle],
|
||||
["clan_rank_flags", tempClanRankData.flags],
|
||||
["clan_rank_level", tempClanRankData.level],
|
||||
["clan_rank_enabled", boolToInt(tempClanRankData.enabled)],
|
||||
];
|
||||
|
||||
let dbQuery = null;
|
||||
if(tempClanRankData.databaseId == 0) {
|
||||
let queryString = createDatabaseInsertQuery("clan_rank", data);
|
||||
dbQuery = queryDatabase(dbConnection, queryString);
|
||||
getClanRankData(clanId, rankId).databaseId = getDatabaseInsertId(dbConnection);
|
||||
getClanRankData(clanId, rankId).needsSaved = false;
|
||||
} else {
|
||||
let queryString = createDatabaseUpdateQuery("clan_rank", data, `clan_rank_id=${tempClanRankData.databaseId} LIMIT 1`);
|
||||
dbQuery = queryDatabase(dbConnection, queryString);
|
||||
getClanRankData(clanId, rankId).needsSaved = false;
|
||||
}
|
||||
let dbQuery = null;
|
||||
if(tempClanRankData.databaseId == 0) {
|
||||
let queryString = createDatabaseInsertQuery("clan_rank", data);
|
||||
dbQuery = queryDatabase(dbConnection, queryString);
|
||||
getClanRankData(clanId, rankId).databaseId = getDatabaseInsertId(dbConnection);
|
||||
getClanRankData(clanId, rankId).needsSaved = false;
|
||||
} else {
|
||||
let queryString = createDatabaseUpdateQuery("clan_rank", data, `clan_rank_id=${tempClanRankData.databaseId} LIMIT 1`);
|
||||
dbQuery = queryDatabase(dbConnection, queryString);
|
||||
getClanRankData(clanId, rankId).needsSaved = false;
|
||||
}
|
||||
|
||||
freeDatabaseQuery(dbQuery);
|
||||
disconnectFromDatabase(dbConnection);
|
||||
return true;
|
||||
freeDatabaseQuery(dbQuery);
|
||||
disconnectFromDatabase(dbConnection);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -1169,6 +1191,10 @@ function setClanRankTitle(clanId, rankId, title) {
|
||||
// ===========================================================================
|
||||
|
||||
function saveAllClansToDatabase() {
|
||||
if(getServerConfig().devServer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for(let i in getServerData().clans) {
|
||||
saveClanToDatabase(i);
|
||||
}
|
||||
@@ -1231,6 +1257,11 @@ function getClanRankIdFromDatabaseId(clanId, databaseId) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
/**
|
||||
* @param {number} clanId - The data index of the clan
|
||||
* @param {number} clanRankId - The data index of the clan rank
|
||||
* @return {ClanRankData} The clan rank's data (class instance)
|
||||
*/
|
||||
function getClanRankData(clanId, rankId) {
|
||||
return getServerData().clans[clanId].ranks[rankId];
|
||||
}
|
||||
@@ -1287,7 +1318,7 @@ function showClanFlagListCommand(command, params, client) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let rankId = getClanRankFromParams(clanId, getParam(params, " ", 1));
|
||||
let rankId = getClanRankFromParams(clanId, getParam(params, " ", 1));
|
||||
|
||||
if(!getClanRankData(clanId, rankId)) {
|
||||
messagePlayerError(client, getLocaleString(client, "ClanRankInvalid"));
|
||||
@@ -1310,6 +1341,12 @@ let rankId = getClanRankFromParams(clanId, getParam(params, " ", 1));
|
||||
}
|
||||
*/
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
/**
|
||||
* @param {String} params - The params to search for
|
||||
* @return {Number} The data index of a matching clan
|
||||
*/
|
||||
function getClanFromParams(params) {
|
||||
if(isNaN(params)) {
|
||||
for(let i in getServerData().clans) {
|
||||
@@ -1328,6 +1365,11 @@ function getClanFromParams(params) {
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
/**
|
||||
* @param {Number} clanId - The clan ID to search ranks for
|
||||
* @param {String} params - The params to search for
|
||||
* @return {Number} The data index of a matching clan
|
||||
*/
|
||||
function getClanRankFromParams(clanId, params) {
|
||||
if(isNaN(params)) {
|
||||
for(let i in getClanData(clanId).ranks) {
|
||||
|
||||
Reference in New Issue
Block a user