168 lines
4.9 KiB
JavaScript
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);
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|