Files
GTA4RP/scripts/server/developer.js
2020-09-04 15:56:19 -05:00

168 lines
4.9 KiB
JavaScript

// ===========================================================================
// Asshat Gaming RP
// http://asshatgaming.com
// © 2020 Asshat Gaming
// ---------------------------------------------------------------------------
// FILE: developer.js
// DESC: Provides developer operation, commands, functions and usage
// TYPE: Server (JavaScript)
// ===========================================================================
function initDeveloperScript() {
console.log("[Asshat.Developer]: Initializing developer script ...");
addDeveloperCommandHandlers()
console.log("[Asshat.Developer]: Developer script initialized successfully!");
return true;
}
// ---------------------------------------------------------------------------
function addDeveloperCommandHandlers() {
console.log("[Asshat.Developer]: Adding developer command handlers ...");
let developerCommands = serverCommands.database;
for(let i in developerCommands) {
addCommandHandler(developerCommands[i].command, developerCommands[i].handlerFunction);
}
console.log("[Asshat.Developer]: Developer command handlers added!");
return true;
}
// ---------------------------------------------------------------------------
function executeServerCodeCommand(command, params, client) {
if(getCommand(command).requireLogin) {
if(!isClientLoggedIn(client)) {
messageClientError(client, "You must be logged in to use this command!");
return false;
}
}
if(!doesClientHaveStaffPermission(client, getCommandRequiredPermissions(command))) {
messageClientError(client, "You do not have permission to use this command!");
return false;
}
if(areParamsEmpty(params)) {
messageClientSyntax(client, getCommandSyntaxText(command));
return false;
}
try {
eval(params);
} catch(error) {
messageClientError(client, "The code could not be executed!");
return false;
}
messageClientSuccess(client, "Code executed!");
messageClientNormal(client, "Code: " + params);
return true;
}
// ---------------------------------------------------------------------------
function executeClientCodeCommand(command, params, client) {
if(getCommand(command).requireLogin) {
if(!isClientLoggedIn(client)) {
messageClientError(client, "You must be logged in to use this command!");
return false;
}
}
if(!doesClientHaveStaffPermission(client, getCommandRequiredPermissions(command))) {
messageClientError(client, "You do not have permission to use this command!");
return false;
}
if(areParamsEmpty(params)) {
messageClientSyntax(client, getCommandSyntaxText(command));
return false;
}
let splitParams = params.split();
let targetClient = getClientFromParams(splitParams[0]);
let code = splitParams.slice(1).join(" ");
if(!targetClient) {
messageClientError(client, "That player was not found!");
return false;
}
if(code.length > 0) {
messageClientError(client, "You didn't enter any code!");
return false;
}
triggerNetworkEvent("ag.runcode", targetClient, code);
messageClientSuccess(client, "Client code executed for " + String(targetClient.name) + "!");
messageClientNormal(client, "Code: " + params);
return true;
}
// ---------------------------------------------------------------------------
function restartGameModeCommand(command, params, client) {
if(client.administrator) {
consoleCommand("/refresh");
thisResource.restart();
}
if(getCommand(command).requireLogin) {
if(!isClientLoggedIn(client)) {
messageClientError(client, "You must be logged in to use this command!");
return false;
}
}
if(!doesClientHaveStaffPermission(client, getCommandRequiredPermissions(command))) {
messageClientError(client, "You do not have permission to use this command!");
return false;
}
thisResource.restart();
return true;
}
// ---------------------------------------------------------------------------
function developerAnnounceCommand(command, params, client) {
if(getCommand(command).requireLogin) {
if(!isClientLoggedIn(client)) {
messageClientError(client, "You must be logged in to use this command!");
return false;
}
}
if(!doesClientHaveStaffPermission(client, getCommandRequiredPermissions(command))) {
messageClientError(client, "You do not have permission to use this command!");
return false;
}
developerAnnouncement(client, params);
return true;
}
// ---------------------------------------------------------------------------
function queryDatabaseCommand(command, params, client) {
//if(client == consoleClient) {
let databaseConnection = connectToDatabase();
if(databaseConnection.error) {
console.error("Database error: " + databaseConnection.error);
return false;
}
let query = databaseConnection.query(params);
if(databaseConnection.error) {
console.error("Query error: " + databaseConnection.error);
return false;
}
console.log("Query executed!");
console.log(query.fetchRow()[0]);
//}
}
addCommandHandler("query", queryDatabaseCommand);
// ---------------------------------------------------------------------------