Add radiostation and keybinds list

This commit is contained in:
Vortrex
2021-08-24 20:36:02 -05:00
parent ab82e1ac5f
commit e17b43bf2f
4 changed files with 67 additions and 25 deletions

View File

@@ -1240,6 +1240,7 @@ function initClassTable() {
this.url = ""; this.url = "";
this.genre = ""; this.genre = "";
this.codec = ""; this.codec = "";
this.index = -1;
if(dbAssoc) { if(dbAssoc) {
this.databaseId = dbAssoc["radio_id"]; this.databaseId = dbAssoc["radio_id"];

View File

@@ -280,23 +280,24 @@ function loadCommands() {
commandData("jobreloadall", reloadAllJobsCommand, "", getStaffFlagValue("manageJobs"), true, false), commandData("jobreloadall", reloadAllJobsCommand, "", getStaffFlagValue("manageJobs"), true, false),
], ],
keybind: [ keybind: [
commandData("bindkey", addKeyBindCommand, "<key id/name> <command> [params]", getStaffFlagValue("none"), true, false), commandData("bindkey", addKeyBindCommand, "<key id/name> <command> [params]", getStaffFlagValue("none"), true, false, "Binds a key to a command and optional parameters"),
commandData("unbindkey", removeKeyBindCommand, "<key id/name>", getStaffFlagValue("none"), true, false), commandData("unbindkey", removeKeyBindCommand, "<key id/name>", getStaffFlagValue("none"), true, false, "Removes an existing keybind from your account"),
//commandData("keybinds", showKeyBindCommands, "", getStaffFlagValue("none"), true, false), commandData("keybinds", showKeyBindListCommand, "", getStaffFlagValue("none"), true, false, "Shows a list of all your current keybinds"),
], ],
locale: [], locale: [],
messaging: [], messaging: [],
misc: [ misc: [
commandData("pos", getPositionCommand, "", getStaffFlagValue("basicModeration"), true, false), commandData("pos", getPositionCommand, "", getStaffFlagValue("basicModeration"), true, false, "Shows your current coordinates"),
commandData("idea", submitIdeaCommand, "<message>", getStaffFlagValue("none"), true, true), commandData("idea", submitIdeaCommand, "<message>", getStaffFlagValue("none"), true, true, "Sends an suggestion/idea to the developers"),
commandData("bug", submitBugReportCommand, "<message>", getStaffFlagValue("none"), true, true), commandData("bug", submitBugReportCommand, "<message>", getStaffFlagValue("none"), true, true, "Submits a bug report"),
commandData("enter", enterExitPropertyCommand, "", getStaffFlagValue("none"), true, true), commandData("enter", enterExitPropertyCommand, "", getStaffFlagValue("none"), true, true, "Enters or exists a house/business"),
commandData("cursor", toggleMouseCursorCommand, "", getStaffFlagValue("none"), true, false), commandData("cursor", toggleMouseCursorCommand, "", getStaffFlagValue("none"), true, false, "Toggles cursor visibility"),
commandData("mousecam", toggleMouseCameraCommand, "", getStaffFlagValue("none"), true, false), commandData("mousecam", toggleMouseCameraCommand, "", getStaffFlagValue("none"), true, false, "Toggles vehicle mouse camera for games that don't have it"),
commandData("yes", playerPromptAnswerYesCommand, "", getStaffFlagValue("none"), true, false), commandData("yes", playerPromptAnswerYesCommand, "", getStaffFlagValue("none"), true, false, "Answers a prompt with YES"),
commandData("no", playerPromptAnswerNoCommand, "", getStaffFlagValue("none"), true, false), commandData("no", playerPromptAnswerNoCommand, "", getStaffFlagValue("none"), true, false, "Answers a prompt with NO"),
commandData("radiostation", playStreamingRadioCommand, "<radio station id>", getStaffFlagValue("none"), true, false), commandData("radiostation", playStreamingRadioCommand, "<radio station id>", getStaffFlagValue("none"), true, false, "Plays a radio station in your vehicle, house, or business (depending on which one you're in)"),
commandData("radiovolume", setStreamingRadioVolumeCommand, "<volume level>", getStaffFlagValue("none"), true, false), commandData("radiostations", showRadioStationListCommand, "", getStaffFlagValue("none"), true, false, "Shows a list of all available radio stations"),
commandData("radiovolume", setStreamingRadioVolumeCommand, "<volume level>", getStaffFlagValue("none"), true, false, "Sets the radio streaming volume (for your game only)."),
], ],
moderation: [ moderation: [
commandData("kick", kickClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true, "Kicks a player from the server"), commandData("kick", kickClientCommand, "<player name/id> [reason]", getStaffFlagValue("basicModeration"), true, true, "Kicks a player from the server"),

View File

@@ -197,3 +197,17 @@ function loadKeyBindConfiguration() {
} }
// =========================================================================== // ===========================================================================
function showKeyBindListCommand(command, params, client) {
let keybindList = getPlayerData(client).accountData.keyBinds.map(function(x) { return `${getInlineChatColourByName("lightGrey")}${toUpperCase(getKeyNameFromId(x.key))}: ${getInlineChatColourByName("white")}${x.commandString}`; });
let chunkedList = splitArrayIntoChunks(keybindList, 6);
messagePlayerInfo(client, `${getInlineChatColourByType("clanOrange")}== ${getInlineChatColourByType("jobYellow")}Your Key Binds ${getInlineChatColourByType("clanOrange")}===========================`);
for(let i in chunkedList) {
messagePlayerInfo(client, chunkedList[i].join(", "));
}
}
// ===========================================================================

View File

@@ -7,13 +7,10 @@
// TYPE: Server (JavaScript) // TYPE: Server (JavaScript)
// =========================================================================== // ===========================================================================
let radioStations = [];
// ===========================================================================
function initRadioScript() { function initRadioScript() {
logToConsole(LOG_INFO, "[VRR.Radio]: Initializing radio script ..."); logToConsole(LOG_INFO, "[VRR.Radio]: Initializing radio script ...");
radioStations = loadRadioStationsFromDatabase(); getServerData().radioStations = loadRadioStationsFromDatabase();
setRadioStationIndexes();
logToConsole(LOG_INFO, "[VRR.Radio]: Radio script initialized successfully!"); logToConsole(LOG_INFO, "[VRR.Radio]: Radio script initialized successfully!");
return true; return true;
} }
@@ -47,12 +44,13 @@ function loadRadioStationsFromDatabase() {
function playStreamingRadioCommand(command, params, client) { function playStreamingRadioCommand(command, params, client) {
if(areParamsEmpty(params)) { if(areParamsEmpty(params)) {
messagePlayerSyntax(client, getCommandSyntaxText(command)); messagePlayerSyntax(client, getCommandSyntaxText(command));
messagePlayerInfo(client, "Use /radiostations for a list of available radio stations.");
return false; return false;
} }
let radioStationId = params; let radioStationId = params;
if(radioStationId != 0 && typeof radioStations[radioStationId-1] == "undefined") { if(radioStationId != 0 && typeof getServerData().radioStations[radioStationId-1] == "undefined") {
messagePlayerError(client, "That radio station ID does not exist!"); messagePlayerError(client, "That radio station ID does not exist!");
return false; return false;
} }
@@ -79,12 +77,12 @@ function playStreamingRadioCommand(command, params, client) {
getVehicleData(getPlayerVehicle(client)).streamingRadioStation = radioStationId-1; getVehicleData(getPlayerVehicle(client)).streamingRadioStation = radioStationId-1;
getPlayerData(client).streamingRadioStation = radioStationId-1; getPlayerData(client).streamingRadioStation = radioStationId-1;
meActionToNearbyPlayers(client, `changes their vehicle's radio station to ${radioStations[radioStationId-1].name} (${radioStations[radioStationId-1].genre})`); meActionToNearbyPlayers(client, `changes their vehicle's radio station to ${getRadioStationData(radioStationId-1).name} (${getRadioStationData(radioStationId-1).genre})`);
let clients = getClients(); let clients = getClients();
for(let i in clients) { for(let i in clients) {
if(getPlayerVehicle(client) == getPlayerVehicle(clients[i])) { if(getPlayerVehicle(client) == getPlayerVehicle(clients[i])) {
playRadioStreamForPlayer(clients[i], radioStations[radioStationId-1].url, true, getPlayerStreamingRadioVolume(client)); playRadioStreamForPlayer(clients[i], getRadioStationData(radioStationId-1).url, true, getPlayerStreamingRadioVolume(client));
} }
} }
} else { } else {
@@ -104,12 +102,12 @@ function playStreamingRadioCommand(command, params, client) {
} else { } else {
getHouseData(houseId).streamingRadioStation = radioStationId-1; getHouseData(houseId).streamingRadioStation = radioStationId-1;
getPlayerData(client).streamingRadioStation = radioStationId-1; getPlayerData(client).streamingRadioStation = radioStationId-1;
meActionToNearbyPlayers(client, `changes their house radio station to ${radioStations[radioStationId-1].name} (${radioStations[radioStationId-1].genre})`); meActionToNearbyPlayers(client, `changes their house radio station to ${getRadioStationData(radioStationId-1).name} (${getRadioStationData(radioStationId-1).genre})`);
let clients = getClients(); let clients = getClients();
for(let i in clients) { for(let i in clients) {
if(getEntityData(clients[i], "vrr.inHouse") == houseId) { if(getEntityData(clients[i], "vrr.inHouse") == houseId) {
playRadioStreamForPlayer(clients[i], radioStations[radioStationId-1].url, true, getPlayerStreamingRadioVolume(clients[i])); playRadioStreamForPlayer(clients[i], getRadioStationData(radioStationId-1).url, true, getPlayerStreamingRadioVolume(clients[i]));
} }
} }
} }
@@ -129,12 +127,12 @@ function playStreamingRadioCommand(command, params, client) {
} else { } else {
getBusinessData(businessId).streamingRadioStation = radioStationId-1; getBusinessData(businessId).streamingRadioStation = radioStationId-1;
getPlayerData(client).streamingRadioStation = radioStationId-1; getPlayerData(client).streamingRadioStation = radioStationId-1;
meActionToNearbyPlayers(client, `changes the business radio station to ${radioStations[radioStationId-1].name} (${radioStations[radioStationId-1].genre})`); meActionToNearbyPlayers(client, `changes the business radio station to ${getRadioStationData(radioStationId-1).name} (${getRadioStationData(radioStationId-1).genre})`);
let clients = getClients(); let clients = getClients();
for(let i in clients) { for(let i in clients) {
if(getEntityData(clients[i], "vrr.inBusiness") == businessId) { if(getEntityData(clients[i], "vrr.inBusiness") == businessId) {
playRadioStreamForPlayer(clients[i], radioStations[radioStationId-1].url, true, getPlayerStreamingRadioVolume(clients[i])); playRadioStreamForPlayer(clients[i], getRadioStationData(radioStationId-1).url, true, getPlayerStreamingRadioVolume(clients[i]));
} }
} }
} }
@@ -186,3 +184,31 @@ function getPlayerStreamingRadioVolume(client) {
} }
// =========================================================================== // ===========================================================================
function showRadioStationListCommand(command, params, client) {
let stationList = getServerData().radioStations.map(function(x) { return `${getInlineChatColourByName("lightGrey")}${x.index}: ${getInlineChatColourByName("white")}${x.name}`; });
let chunkedList = splitArrayIntoChunks(stationList, 4);
messagePlayerInfo(client, `${getInlineChatColourByType("clanOrange")}== ${getInlineChatColourByType("jobYellow")}Radio Stations ${getInlineChatColourByType("clanOrange")}===========================`);
for(let i in chunkedList) {
messagePlayerInfo(client, chunkedList[i].join(", "));
}
}
// ===========================================================================
function setRadioStationIndexes() {
for(let i in getServerData().radioStations) {
getServerData().radioStations[i].index = i;
}
}
// ===========================================================================
function getRadioStationData(radioStationId) {
return getServerData().radioStations[radioStationId];
}
// ===========================================================================