From 24b601917d3db3e043d821d6c285f5f078aa90d2 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 16 Mar 2021 02:25:40 -0500 Subject: [PATCH] Remove mod-specific natives --- scripts/native/gtac/client.js | 29 --- scripts/native/gtac/server.js | 276 -------------------------- scripts/native/gtac/shared.js | 333 ------------------------------- scripts/native/ragemp/client.js | 29 --- scripts/native/ragemp/server.js | 256 ------------------------ scripts/native/ragemp/shared.js | 335 -------------------------------- 6 files changed, 1258 deletions(-) delete mode 100644 scripts/native/gtac/client.js delete mode 100644 scripts/native/gtac/server.js delete mode 100644 scripts/native/gtac/shared.js delete mode 100644 scripts/native/ragemp/client.js delete mode 100644 scripts/native/ragemp/server.js delete mode 100644 scripts/native/ragemp/shared.js diff --git a/scripts/native/gtac/client.js b/scripts/native/gtac/client.js deleted file mode 100644 index 8d3de13d..00000000 --- a/scripts/native/gtac/client.js +++ /dev/null @@ -1,29 +0,0 @@ -// =========================================================================== -// Asshat-Gaming Roleplay -// https://github.com/VortrexFTW/gtac_asshat_rp -// Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// =========================================================================== -// FILE: client.js -// DESC: Provides wrapped client natives for GTAC -// TYPE: Natives (JavaScript) -// =========================================================================== - -// =========================================================================== - -function getClientGame() { - return gta.game; -} - -// =========================================================================== - -function sendToServer(eventName, ...args) { - triggerNetworkEvent.call(eventName, args); -} - -// =========================================================================== - -function receiveFromServer(eventName, handlerFunction) { - addNetworkHandler(eventName, handlerFunction); -} - -// =========================================================================== \ No newline at end of file diff --git a/scripts/native/gtac/server.js b/scripts/native/gtac/server.js deleted file mode 100644 index 8725a10c..00000000 --- a/scripts/native/gtac/server.js +++ /dev/null @@ -1,276 +0,0 @@ -// =========================================================================== -// Asshat-Gaming Roleplay -// https://github.com/VortrexFTW/gtac_asshat_rp -// Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// =========================================================================== -// FILE: native.js -// DESC: Provides util function to wrap mod-specific stuff -// TYPE: Server (JavaScript) -// =========================================================================== - -// Use data for each because args are probably gonna be way different for each mod - -// =========================================================================== - -function getServerGame() { - return server.game; -} - -// =========================================================================== - -function getPlayerPosition(client) { - if(getServerGame() == GAME_GTA_IV) { - return getPlayerData(client).syncPosition; - } else { - if(client.player != null) { - return client.player.position; - } - } -} - -// =========================================================================== - -function setPlayerPosition(client, position) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s position to ${position.x}, ${position.y}, ${position.z}`); - sendPlayerSetPosition(client, position); -} - -// =========================================================================== - -function getPlayerHeading(client) { - if(getServerGame() == GAME_GTA_IV) { - return getPlayerData(client).syncHeading; - } else { - if(client.player != null) { - return client.player.heading; - } - } -} - -// =========================================================================== - -function setPlayerHeading(client, heading) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s heading to ${heading}`); - sendPlayerSetHeading(client, heading); -} - -// =========================================================================== - -function getPlayerVehicle(client) { - if(getServerGame() == GAME_GTA_IV) { - return getPlayerData().syncVehicle; - } else { - if(client.player.vehicle) { - return client.player.vehicle; - } - } - return false; -} - -// =========================================================================== - -function getPlayerDimension(client) { - return client.player.dimension; -} - -// =========================================================================== - -function getPlayerInterior(client) { - if(getPlayerData(client)) { - if(getPlayerCurrentSubAccount(client)) { - return getPlayerCurrentSubAccount(client).interior; - } - } -} - -// =========================================================================== - -function setPlayerDimension(client, dimension) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s dimension to ${dimension}`); - client.player.dimension = dimension; -} - -// =========================================================================== - -function setPlayerInterior(client, interior) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s interior to ${interior}`); - sendPlayerSetInterior(client, interior); - getPlayerCurrentSubAccount(client).interior = interior; -} - -// =========================================================================== - -function isPlayerInAnyVehicle(client) { - if(getServerGame() == GAME_GTA_IV) { - return (getPlayerData().syncVehicle != null); - } else { - return (client.player.vehicle != null); - } -} - -// =========================================================================== - -function getPlayerVehicleSeat(client) { - if(!isPlayerInAnyVehicle(client)) { - return false; - } - - for(let i = 0 ; i <= 8 ; i++) { - if(getPlayerVehicle(client).getOccupant(i) == client.player) { - return i; - } - } - - return false; -} - -// =========================================================================== - -function isPlayerSpawned(client) { - return (client.player != null); -} - -// =========================================================================== - -function getVehiclePosition(vehicle) { - return vehicle.position; -} - -// =========================================================================== - -function getVehicleHeading(vehicle) { - return vehicle.heading; -} - -// =========================================================================== - -function getVehicleSyncer(vehicle) { - return getElementSyncer(vehicle); -} - -// =========================================================================== - -function getVehicleForNetworkEvent(vehicle) { - return vehicle; -} - -// =========================================================================== - -function deleteGameElement(element) { - logToConsole(LOG_DEBUG, `Destroying game element ${element.id} (Type: ${element.type})`); - if(element != null) { - destroyElement(element); - return true; - } - return false; -} - -// =========================================================================== - -function isPlayerInFrontVehicleSeat(client) { - return (getPlayerVehicleSeat(client) == 0 || getPlayerVehicleSeat(client) == 1); -} - -// =========================================================================== - -function removePlayerFromVehicle(client) { - logToConsole(LOG_DEBUG, `Removing ${getPlayerDisplayForConsole(client)} from their vehicle`); - sendPlayerRemoveFromVehicle(client); - return true; -} - -// =========================================================================== - -function setPlayerSkin(client, skin) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s skin to ${skin} (${getSkinNameFromId(skin)})`); - client.player.modelIndex = skin; -} - -// =========================================================================== - -function getPlayerSkin(client) { - return client.player.modelIndex; -} - -// =========================================================================== - -function disconnectPlayer(client) { - logToConsole(LOG_DEBUG, `Disconnecting (kicking) ${getPlayerDisplayForConsole(client)}`); - client.disconnect(); - return false; -} - -// =========================================================================== - -function getElementSyncer(element) { - return getClients()[element.syncer]; -} - -// =========================================================================== - -function getPlayerWeaponAmmo(client) { - return client.player.weaponAmmunition; -} - -// =========================================================================== - -function setPlayerVelocity(client, velocity) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s velocity to ${velocity.x}, ${velocity.y}, ${velocity.z}`); - client.player.velocity = velocity; -} - -// =========================================================================== - -function getPlayerVelocity(client, velocity) { - return client.player.velocity; -} - -// =========================================================================== - -function getElementDimension(element) { - return element.dimension; -} - -// =========================================================================== - -function setElementDimension(element, dimension) { - return element.dimension = dimension; -} - -// =========================================================================== - -function givePlayerHealth(client, amount) { - if(getPlayerHealth(client)+amount > 100) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s health to 100`); - setPlayerHealth(client, 100); - } else { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s health to ${getPlayerHealth(client)+amount}`); - setPlayerHealth(client, getPlayerHealth(client)+amount); - } -} - -// =========================================================================== - -function givePlayerArmour(client, amount) { - if(getPlayerArmour(client)+amount > 100) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s armour to 100`); - setPlayerArmour(client, 100); - } else { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s armour to ${getPlayerArmour(client)+amount}`); - setPlayerArmour(client, getPlayerArmour(client)+amount); - } -} - -// =========================================================================== - -function sendToClient(client, eventName, ...args) { - triggerNetworkEvent.call(client, eventName, args); -} - -// =========================================================================== - -function receiveFromClient(eventName, handlerFunction) { - addNetworkHandler(eventName, handlerFunction); -} - -// =========================================================================== \ No newline at end of file diff --git a/scripts/native/gtac/shared.js b/scripts/native/gtac/shared.js deleted file mode 100644 index 5c31eb21..00000000 --- a/scripts/native/gtac/shared.js +++ /dev/null @@ -1,333 +0,0 @@ -// =========================================================================== -// Asshat-Gaming Roleplay -// https://github.com/VortrexFTW/gtac_asshat_rp -// Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// =========================================================================== -// FILE: native.js -// DESC: Provides util funcs for native wrapping -// TYPE: Shared (JavaScript) -// =========================================================================== - -"use strict"; -setErrorMode(RESOURCEERRORMODE_STRICT); - -// =========================================================================== - -function and(var1, var2) { - return (var1 && var2); -} - -// =========================================================================== - -function or(var1, var2) { - return (var1 || var2); -} - -// =========================================================================== - -function not(var1) { - return !var1; -} - -// =========================================================================== - -function bitAnd(var1, var2) { - return var1 & var2; -} - -// =========================================================================== - -function bitOr(var1, var2) { - return var1 | var2; -} - -// =========================================================================== - -function bitXor(var1, var2) { - return var1 ^ var2; -} - -// =========================================================================== - -function bitNot(var1) { - return ~var1; -} - -// =========================================================================== - -function bitLeftShift(var1, var2) { - return var1 << var2; -} - -// =========================================================================== - -function bitRightShift(var1, var2) { - return var1 >> var2; -} - -// =========================================================================== - -function greaterThan(var1, var2) { - return var1 > var2; -} - -// =========================================================================== - -function lessThan(var1, var2) { - return (var1 < var2); -} - -// =========================================================================== - -function greaterThanOrEqualTo(var1, var2) { - return (var1 >= var2); -} - -// =========================================================================== - -function lessThanOrEqualTo(var1, var2) { - return (var1 <= var2); -} - -// =========================================================================== - -function equals(var1, var2) { - return (var1 == var2); -} - -// =========================================================================== - -function modulo(var1, var2) { - return var1 % var2; -} - -// =========================================================================== - -function add(...args) { - return args.reduce((acc, a) => { - return acc + a; - }, 0); -} - -// =========================================================================== - -function subtract(...args) { - return args.reduce((acc, a) => { - return acc - a; - }, 0); -} - -// =========================================================================== - -function multiply(...args) { - return args.reduce((acc, a) => { - return acc * a; - }, 0); -} - -// =========================================================================== - -function divide(...args) { - return args.reduce((acc, a) => { - return acc / a; - }, 0); -} - -// =========================================================================== - -function toArray(...args) { - return args; -} - -// =========================================================================== - -function toInteger(val) { - return Number(val); -} - -// =========================================================================== - -function toFloat(val, fixed = 2) { - return parseFloat((val).toFixed(fixed)); -} - -// =========================================================================== - -function toString(val) { - return String(val); -} - -// =========================================================================== - -function toVector3(x, y, z) { - return new Vec3(x, y, z); -} - -// =========================================================================== - -function toVector2(x, y) { - return new Vec2(x, y); -} - -// =========================================================================== - -function toUpperCase(val) { - return String(val).toUpperCase(); -} - -// =========================================================================== - -function toLowerCase(val) { - return String(val).toLowerCase(); -} - -// =========================================================================== - -function isNull(val) { - if(val == null) { - return true; - } - - if(typeof val === "undefined") { - return true; - } - - return false; -} - -// =========================================================================== - -function getEntityData(entity, dataName) { - if(entity != null) { - if(entity.getData != null) { - return entity.getData(dataName); - } - } - return null; -} - -// =========================================================================== - -function setEntityData(entity, dataName, dataValue, syncToClients = true) { - if(entity != null) { - if(!isNull(server)) { - return entity.setData(dataName, dataValue, syncToClients); - } else { - return entity.setData(dataName, dataValue); - } - } -} - -// =========================================================================== - -function removeEntityData(entity, dataName) { - if(entity != null) { - return entity.removeData(dataName); - } - return null; -} - -// =========================================================================== - -function doesEntityDataExist(entity, dataName) { - if(entity != null) { - return (entity.getData(dataName) != null); - } - return null; -} - -// =========================================================================== - -function getDistance(vec1, vec2) { - if(isNull(vec1) || isNull(vec2)) { - return false; - } - return vec1.distance(vec2); -} - -// =========================================================================== - -function isConsole(client) { - if(client == null) { - return false; - } - - return client.console; -} - -// =========================================================================== - -function logToConsole(tempLogLevel, text) { - if((logLevel & tempLogLevel) || logLevel == LOG_ALL) { - if(tempLogLevel == LOG_ERROR) { - console.error(text); - return true; - } else if(tempLogLevel == LOG_WARN) { - console.warn(text); - return true; - } else { - console.log(text); - return true; - } - } - return false; -} - -// =========================================================================== - -function isSamePlayer(client1, client2) { - return (client1 == client2); -} - -// =========================================================================== - -function getClientFromIndex(index) { - let clients = getClients(); - for(let i in clients) { - if(clients[i].index == index) { - return clients[i]; - } - } -} - -// =========================================================================== - -function getConsoleClient() { - let clients = getClients(); - for(let i in clients) { - if(isConsole(clients[i])) { - return clients[i]; - } - } -} - -// =========================================================================== - -function getPlayerFromParams(params) { - let clients = getPlayers(); - if(isNaN(params)) { - for(let i in clients) { - if(!isConsole(clients[i])) { - if(toLowerCase(clients[i].name).indexOf(toLowerCase(params)) != -1) { - return clients[i]; - } - - if(toLowerCase(getCharacterFullName(clients[i])).indexOf(toLowerCase(params)) != -1) { - return clients[i]; - } - } - } - } else { - if(typeof clients[toInteger(params)] != "undefined") { - return clients[toInteger(params)]; - } - } - - return false; -} - -// =========================================================================== - -function getPlayers() { - return getClients(); -} \ No newline at end of file diff --git a/scripts/native/ragemp/client.js b/scripts/native/ragemp/client.js deleted file mode 100644 index b5f7aa77..00000000 --- a/scripts/native/ragemp/client.js +++ /dev/null @@ -1,29 +0,0 @@ -// =========================================================================== -// Asshat-Gaming Roleplay -// https://github.com/VortrexFTW/gtac_asshat_rp -// Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// =========================================================================== -// FILE: client.js -// DESC: Provides wrapped client natives for RAGEMP -// TYPE: Natives (JavaScript) -// =========================================================================== - -// =========================================================================== - -function getClientGame() { - return AG_GAME_GTA_V; -} - -// =========================================================================== - -function sendToServer(eventName, ...args) { - mp.events.call(eventName, args); -} - -// =========================================================================== - -function receiveFromServer(eventName, handlerFunction) { - mp.events.add(eventName, handlerFunction); -} - -// =========================================================================== \ No newline at end of file diff --git a/scripts/native/ragemp/server.js b/scripts/native/ragemp/server.js deleted file mode 100644 index be063a1b..00000000 --- a/scripts/native/ragemp/server.js +++ /dev/null @@ -1,256 +0,0 @@ -// =========================================================================== -// Asshat-Gaming Roleplay -// https://github.com/VortrexFTW/gtac_asshat_rp -// Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// =========================================================================== -// FILE: server.js -// DESC: Provides wrapped server natives for RAGEMP -// TYPE: Natives (JavaScript) -// =========================================================================== - -// =========================================================================== - -function getServerGame() { - return AG_GAME_GTA_V; -} - -// =========================================================================== - -function getPlayerPosition(client) { - return client.player.position; -} - -// =========================================================================== - -function setPlayerPosition(client, position) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s position to ${position.x}, ${position.y}, ${position.z}`); - client.position = position; -} - -// =========================================================================== - -function getPlayerHeading(client) { - if(getServerGame() == GAME_GTA_IV) { - return getPlayerData(client).syncHeading; - } else { - if(client.player != null) { - return client.player.heading; - } - } -} - -// =========================================================================== - -function setPlayerHeading(client, heading) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s heading to ${heading}`); - sendPlayerSetHeading(client, heading); -} - -// =========================================================================== - -function getPlayerVehicle(client) { - if(getServerGame() == GAME_GTA_IV) { - return getPlayerData().syncVehicle; - } else { - if(client.player.vehicle) { - return client.player.vehicle; - } - } - return false; -} - -// =========================================================================== - -function getPlayerDimension(client) { - return client.player.dimension; -} - -// =========================================================================== - -function getPlayerInterior(client) { - if(getPlayerData(client)) { - if(getPlayerCurrentSubAccount(client)) { - return getPlayerCurrentSubAccount(client).interior; - } - } -} - -// =========================================================================== - -function setPlayerDimension(client, dimension) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s dimension to ${dimension}`); - client.player.dimension = dimension; -} - -// =========================================================================== - -function setPlayerInterior(client, interior) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s interior to ${interior}`); - sendPlayerSetInterior(client, interior); - getPlayerCurrentSubAccount(client).interior = interior; -} - -// =========================================================================== - -function isPlayerInAnyVehicle(client) { - if(getServerGame() == GAME_GTA_IV) { - return (getPlayerData().syncVehicle != null); - } else { - return (client.player.vehicle != null); - } -} - -// =========================================================================== - -function getPlayerVehicleSeat(client) { - if(!isPlayerInAnyVehicle(client)) { - return false; - } - - for(let i = 0 ; i <= 8 ; i++) { - if(getPlayerVehicle(client).getOccupant(i) == client.player) { - return i; - } - } - - return false; -} - -// =========================================================================== - -function isPlayerSpawned(client) { - return (client.player != null); -} - -// =========================================================================== - -function getVehiclePosition(vehicle) { - return vehicle.position; -} - -// =========================================================================== - -function getVehicleHeading(vehicle) { - return vehicle.heading; -} - -// =========================================================================== - -function getVehicleSyncer(vehicle) { - return getElementSyncer(vehicle); -} - -// =========================================================================== - -function getVehicleForNetworkEvent(vehicle) { - return vehicle; -} - -// =========================================================================== - -function deleteGameElement(element) { - logToConsole(LOG_DEBUG, `Destroying game element ${element.id} (Type: ${element.type})`); - if(element != null) { - destroyElement(element); - return true; - } - return false; -} - -// =========================================================================== - -function isPlayerInFrontVehicleSeat(client) { - return (getPlayerVehicleSeat(client) == 0 || getPlayerVehicleSeat(client) == 1); -} - -// =========================================================================== - -function removePlayerFromVehicle(client) { - logToConsole(LOG_DEBUG, `Removing ${getPlayerDisplayForConsole(client)} from their vehicle`); - sendPlayerRemoveFromVehicle(client); - return true; -} - -// =========================================================================== - -function setPlayerSkin(client, skin) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s skin to ${skin} (${getSkinNameFromId(skin)})`); - client.player.modelIndex = skin; -} - -// =========================================================================== - -function getPlayerSkin(client) { - return client.player.modelIndex; -} - -// =========================================================================== - -function disconnectPlayer(client) { - logToConsole(LOG_DEBUG, `Disconnecting (kicking) ${getPlayerDisplayForConsole(client)}`); - client.disconnect(); - return false; -} - -// =========================================================================== - -function getElementSyncer(element) { - return getClients()[element.syncer]; -} - -// =========================================================================== - -function getPlayerWeaponAmmo(client) { - return client.player.weaponAmmunition; -} - -// =========================================================================== - -function setPlayerVelocity(client, velocity) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s velocity to ${velocity.x}, ${velocity.y}, ${velocity.z}`); - client.player.velocity = velocity; -} - -// =========================================================================== - -function getPlayerVelocity(client, velocity) { - return client.player.velocity; -} - -// =========================================================================== - -function getElementDimension(element) { - return element.dimension; -} - -// =========================================================================== - -function setElementDimension(element, dimension) { - return element.dimension = dimension; -} - -// =========================================================================== - -function givePlayerHealth(client, amount) { - if(getPlayerHealth(client)+amount > 100) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s health to 100`); - setPlayerHealth(client, 100); - } else { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s health to ${getPlayerHealth(client)+amount}`); - setPlayerHealth(client, getPlayerHealth(client)+amount); - } -} - -// =========================================================================== - -function givePlayerArmour(client, amount) { - if(getPlayerArmour(client)+amount > 100) { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s armour to 100`); - setPlayerArmour(client, 100); - } else { - logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s armour to ${getPlayerArmour(client)+amount}`); - setPlayerArmour(client, getPlayerArmour(client)+amount); - } -} - -// =========================================================================== \ No newline at end of file diff --git a/scripts/native/ragemp/shared.js b/scripts/native/ragemp/shared.js deleted file mode 100644 index 30f0021e..00000000 --- a/scripts/native/ragemp/shared.js +++ /dev/null @@ -1,335 +0,0 @@ -// =========================================================================== -// Asshat-Gaming Roleplay -// https://github.com/VortrexFTW/gtac_asshat_rp -// Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// =========================================================================== -// FILE: native.js -// DESC: Provides util funcs for native wrapping -// TYPE: Shared (JavaScript) -// =========================================================================== - -"use strict"; -setErrorMode(RESOURCEERRORMODE_STRICT); - -// =========================================================================== - -function and(var1, var2) { - return (var1 && var2); -} - -// =========================================================================== - -function or(var1, var2) { - return (var1 || var2); -} - -// =========================================================================== - -function not(var1) { - return !var1; -} - -// =========================================================================== - -function bitAnd(var1, var2) { - return var1 & var2; -} - -// =========================================================================== - -function bitOr(var1, var2) { - return var1 | var2; -} - -// =========================================================================== - -function bitXor(var1, var2) { - return var1 ^ var2; -} - -// =========================================================================== - -function bitNot(var1) { - return ~var1; -} - -// =========================================================================== - -function bitLeftShift(var1, var2) { - return var1 << var2; -} - -// =========================================================================== - -function bitRightShift(var1, var2) { - return var1 >> var2; -} - -// =========================================================================== - -function greaterThan(var1, var2) { - return var1 > var2; -} - -// =========================================================================== - -function lessThan(var1, var2) { - return (var1 < var2); -} - -// =========================================================================== - -function greaterThanOrEqualTo(var1, var2) { - return (var1 >= var2); -} - -// =========================================================================== - -function lessThanOrEqualTo(var1, var2) { - return (var1 <= var2); -} - -// =========================================================================== - -function equals(var1, var2) { - return (var1 == var2); -} - -// =========================================================================== - -function modulo(var1, var2) { - return var1 % var2; -} - -// =========================================================================== - -function add(...args) { - return args.reduce((acc, a) => { - return acc + a; - }, 0); -} - -// =========================================================================== - -function subtract(...args) { - return args.reduce((acc, a) => { - return acc - a; - }, 0); -} - -// =========================================================================== - -function multiply(...args) { - return args.reduce((acc, a) => { - return acc * a; - }, 0); -} - -// =========================================================================== - -function divide(...args) { - return args.reduce((acc, a) => { - return acc / a; - }, 0); -} - -// =========================================================================== - -function toArray(...args) { - return args; -} - -// =========================================================================== - -function toInteger(val) { - return Number(val); -} - -// =========================================================================== - -function toFloat(val, fixed = 2) { - return parseFloat((val).toFixed(fixed)); -} - -// =========================================================================== - -function toString(val) { - return String(val); -} - -// =========================================================================== - -function toVector3(x, y, z) { - return new Vec3(x, y, z); -} - -// =========================================================================== - -function toVector2(x, y) { - return new Vec2(x, y); -} - -// =========================================================================== - -function toUpperCase(val) { - return String(val).toUpperCase(); -} - -// =========================================================================== - -function toLowerCase(val) { - return String(val).toLowerCase(); -} - -// =========================================================================== - -function isNull(val) { - if(val == null) { - return true; - } - - if(typeof val === "undefined") { - return true; - } - - return false; -} - -// =========================================================================== - -function getEntityData(entity, dataName) { - if(entity != null) { - if(entity.getData != null) { - return entity.getData(dataName); - } - } - return null; -} - -// =========================================================================== - -function setEntityData(entity, dataName, dataValue, syncToClients = true) { - if(entity != null) { - if(!isNull(server)) { - return entity.setData(dataName, dataValue, syncToClients); - } else { - return entity.setData(dataName, dataValue); - } - } -} - -// =========================================================================== - -function removeEntityData(entity, dataName) { - if(entity != null) { - return entity.removeData(dataName); - } - return null; -} - -// =========================================================================== - -function doesEntityDataExist(entity, dataName) { - if(entity != null) { - return (entity.getData(dataName) != null); - } - return null; -} - -// =========================================================================== - -function getDistance(vec1, vec2) { - if(isNull(vec1) || isNull(vec2)) { - return false; - } - return vec1.distance(vec2); -} - -// =========================================================================== - -function isConsole(client) { - if(client == null) { - return false; - } - - return client.console; -} - -// =========================================================================== - -function logToConsole(tempLogLevel, text) { - if((logLevel & tempLogLevel) || logLevel == LOG_ALL) { - if(tempLogLevel == LOG_ERROR) { - console.error(text); - return true; - } else if(tempLogLevel == LOG_WARN) { - console.warn(text); - return true; - } else { - console.log(text); - return true; - } - } - return false; -} - -// =========================================================================== - -function isSamePlayer(client1, client2) { - return (client1 == client2); -} - -// =========================================================================== - -function getClientFromIndex(index) { - let clients = getClients(); - for(let i in clients) { - if(clients[i].index == index) { - return clients[i]; - } - } -} - -// =========================================================================== - -function getConsoleClient() { - let clients = getClients(); - for(let i in clients) { - if(isConsole(clients[i])) { - return clients[i]; - } - } -} - -// =========================================================================== - -function getPlayerFromParams(params) { - let clients = getClients(); - if(isNaN(params)) { - for(let i in clients) { - if(!clients[i].console) { - if(toLowerCase(clients[i].name).indexOf(toLowerCase(params)) != -1) { - return clients[i]; - } - - if(toLowerCase(getCharacterFullName(clients[i])).indexOf(toLowerCase(params)) != -1) { - return clients[i]; - } - } - } - } else { - if(typeof clients[toInteger(params)] != "undefined") { - return clients[toInteger(params)]; - } - } - - return false; -} - -// =========================================================================== - -function getPlayers() { - return getClients(); -} - -// =========================================================================== \ No newline at end of file