Optimizations
This commit is contained in:
@@ -1712,44 +1712,50 @@ function createAllBusinessBlips() {
|
||||
*
|
||||
*/
|
||||
function createBusinessEntrancePickup(businessId) {
|
||||
if(!areServerElementsSupported()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!getServerConfig().createBusinessPickups) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(getBusinessData(businessId).entrancePickupModel != -1) {
|
||||
let pickupModelId = getGameConfig().pickupModels[getGame()].Business;
|
||||
let businessData = getBusinessData(businessId);
|
||||
|
||||
if(getServerData().businesses[businessId].entrancePickupModel != 0) {
|
||||
pickupModelId = getBusinessData(businessId).entrancePickupModel;
|
||||
}
|
||||
//if(businessData.hasInterior) {
|
||||
// return false;
|
||||
//}
|
||||
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating entrance pickup for business ${getBusinessData(businessId).name} (model ${pickupModelId})`);
|
||||
if(businessData.entrancePickupModel == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(areServerElementsSupported()) {
|
||||
let entrancePickup = createGamePickup(pickupModelId, getBusinessData(businessId).entrancePosition, getGameConfig().pickupTypes[getGame()].business);
|
||||
if(entrancePickup != null) {
|
||||
if(businessData.entranceDimension != -1) {
|
||||
setElementDimension(entrancePickup, businessData.entranceDimension);
|
||||
setElementOnAllDimensions(entrancePickup, false);
|
||||
} else {
|
||||
setElementOnAllDimensions(entrancePickup, true);
|
||||
}
|
||||
let pickupModelId = getGameConfig().pickupModels[getGame()].Business;
|
||||
|
||||
if(getGlobalConfig().businessPickupStreamInDistance == -1 || getGlobalConfig().businessPickupStreamOutDistance == -1) {
|
||||
entrancePickup.netFlags.distanceStreaming = false;
|
||||
} else {
|
||||
setElementStreamInDistance(entrancePickup, getGlobalConfig().businessPickupStreamInDistance);
|
||||
setElementStreamOutDistance(entrancePickup, getGlobalConfig().businessPickupStreamOutDistance);
|
||||
}
|
||||
setElementTransient(entrancePickup, false);
|
||||
getBusinessData(businessId).entrancePickup = entrancePickup;
|
||||
updateBusinessPickupLabelData(businessId);
|
||||
}
|
||||
if(businessData.entrancePickupModel != 0) {
|
||||
pickupModelId = businessData.entrancePickupModel;
|
||||
}
|
||||
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating entrance pickup for business ${businessData.name} (model ${pickupModelId})`);
|
||||
|
||||
let entrancePickup = createGamePickup(pickupModelId, businessData.entrancePosition, getGameConfig().pickupTypes[getGame()].business);
|
||||
if(entrancePickup != null) {
|
||||
if(businessData.entranceDimension != -1) {
|
||||
setElementDimension(entrancePickup, businessData.entranceDimension);
|
||||
setElementOnAllDimensions(entrancePickup, false);
|
||||
} else {
|
||||
sendBusinessToPlayer(null, businessId, getBusinessData(businessId), getBusinessData(businessId).entrancePosition, getBusinessData(businessId).entranceBlipModel, getBusinessData(businessId).entrancePickupModel, getBusinessData(businessId).hasInterior, false);
|
||||
setElementOnAllDimensions(entrancePickup, true);
|
||||
}
|
||||
|
||||
return true;
|
||||
if(getGlobalConfig().businessPickupStreamInDistance == -1 || getGlobalConfig().businessPickupStreamOutDistance == -1) {
|
||||
entrancePickup.netFlags.distanceStreaming = false;
|
||||
} else {
|
||||
setElementStreamInDistance(entrancePickup, getGlobalConfig().businessPickupStreamInDistance);
|
||||
setElementStreamOutDistance(entrancePickup, getGlobalConfig().businessPickupStreamOutDistance);
|
||||
}
|
||||
setElementTransient(entrancePickup, false);
|
||||
getBusinessData(businessId).entrancePickup = entrancePickup;
|
||||
updateBusinessPickupLabelData(businessId);
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -1775,38 +1781,39 @@ function createBusinessEntranceBlip(businessId) {
|
||||
|
||||
let businessData = getBusinessData(businessId);
|
||||
|
||||
if(businessData.entranceBlipModel != -1) {
|
||||
let blipModelId = getGameConfig().blipSprites[getGame()].Business;
|
||||
//if(businessData.hasInterior) {
|
||||
// return false;
|
||||
//}
|
||||
|
||||
if(getServerData().businesses[businessId].entranceBlipModel != 0) {
|
||||
blipModelId = businessData.entranceBlipModel;
|
||||
}
|
||||
if(businessData.entranceBlipModel == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating entrance blip for business ${businessData.name} (model ${blipModelId})`);
|
||||
if(areServerElementsSupported()) {
|
||||
let entranceBlip = createGameBlip(businessData.entrancePosition, blipModelId, getColourByType("businessBlue"));
|
||||
let blipModelId = getGameConfig().blipSprites[getGame()].Business;
|
||||
|
||||
if(entranceBlip != null) {
|
||||
if(businessData.entranceDimension != -1) {
|
||||
setElementDimension(entranceBlip, businessData.entranceDimension);
|
||||
setElementOnAllDimensions(entranceBlip, false);
|
||||
} else {
|
||||
setElementOnAllDimensions(entranceBlip, true);
|
||||
}
|
||||
if(businessData.entranceBlipModel != 0) {
|
||||
blipModelId = businessData.entranceBlipModel;
|
||||
}
|
||||
|
||||
if(getGlobalConfig().businessBlipStreamInDistance == -1 || getGlobalConfig().businessBlipStreamOutDistance == -1) {
|
||||
entranceBlip.netFlags.distanceStreaming = false;
|
||||
} else {
|
||||
setElementStreamInDistance(entranceBlip, getGlobalConfig().businessBlipStreamInDistance);
|
||||
setElementStreamOutDistance(entranceBlip, getGlobalConfig().businessBlipStreamOutDistance);
|
||||
}
|
||||
setElementTransient(entranceBlip, false);
|
||||
businessData.entranceBlip = entranceBlip;
|
||||
}
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating entrance blip for business ${businessData.name} (model ${blipModelId})`);
|
||||
|
||||
let entranceBlip = createGameBlip(businessData.entrancePosition, blipModelId, getColourByType("businessBlue"));
|
||||
if(entranceBlip != null) {
|
||||
if(businessData.entranceDimension != -1) {
|
||||
setElementDimension(entranceBlip, businessData.entranceDimension);
|
||||
setElementOnAllDimensions(entranceBlip, false);
|
||||
} else {
|
||||
sendBusinessToPlayer(null, businessId, businessData.name, businessData.entrancePosition, blipModelId, businessData.entrancePickupModel, businessData.hasInterior, false);
|
||||
setElementOnAllDimensions(entranceBlip, true);
|
||||
}
|
||||
|
||||
if(getGlobalConfig().businessBlipStreamInDistance == -1 || getGlobalConfig().businessBlipStreamOutDistance == -1) {
|
||||
entranceBlip.netFlags.distanceStreaming = false;
|
||||
} else {
|
||||
setElementStreamInDistance(entranceBlip, getGlobalConfig().businessBlipStreamInDistance);
|
||||
setElementStreamOutDistance(entranceBlip, getGlobalConfig().businessBlipStreamOutDistance);
|
||||
}
|
||||
setElementTransient(entranceBlip, false);
|
||||
businessData.entranceBlip = entranceBlip;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1820,6 +1827,10 @@ function createBusinessEntranceBlip(businessId) {
|
||||
*
|
||||
*/
|
||||
function createBusinessExitPickup(businessId) {
|
||||
if(!areServerElementsSupported()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!getServerConfig().createBusinessPickups) {
|
||||
return false;
|
||||
}
|
||||
@@ -1827,37 +1838,39 @@ function createBusinessExitPickup(businessId) {
|
||||
let businessData = getBusinessData(businessId);
|
||||
|
||||
if(businessData.hasInterior) {
|
||||
if(businessData.exitPickupModel != -1) {
|
||||
let pickupModelId = getGameConfig().pickupModels[getGame()].Exit;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(getServerData().businesses[businessId].exitPickupModel != 0) {
|
||||
pickupModelId = businessData.exitPickupModel;
|
||||
}
|
||||
if(businessData.entrancePickupModel == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating exit pickup for business ${businessData.name} (model ${pickupModelId})`);
|
||||
let pickupModelId = getGameConfig().pickupModels[getGame()].Business;
|
||||
|
||||
if(areServerElementsSupported()) {
|
||||
let exitPickup = createGamePickup(pickupModelId, businessData.exitPosition, getGameConfig().pickupTypes[getGame()].business);
|
||||
if(exitPickup != null) {
|
||||
if(businessData.exitDimension != -1) {
|
||||
setElementDimension(exitPickup, businessData.exitDimension);
|
||||
setElementOnAllDimensions(exitPickup, false);
|
||||
} else {
|
||||
setElementOnAllDimensions(exitPickup, true);
|
||||
}
|
||||
if(businessData.exitPickupModel != 0) {
|
||||
pickupModelId = businessData.exitPickupModel;
|
||||
}
|
||||
|
||||
if(getGlobalConfig().businessPickupStreamInDistance == -1 || getGlobalConfig().businessPickupStreamOutDistance == -1) {
|
||||
exitPickup.netFlags.distanceStreaming = false;
|
||||
} else {
|
||||
setElementStreamInDistance(exitPickup, getGlobalConfig().businessPickupStreamInDistance);
|
||||
setElementStreamOutDistance(exitPickup, getGlobalConfig().businessPickupStreamOutDistance);
|
||||
}
|
||||
setElementTransient(exitPickup, false);
|
||||
getBusinessData(businessId).exitPickup = exitPickup;
|
||||
updateBusinessPickupLabelData(businessId);
|
||||
}
|
||||
}
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating exit pickup for business ${businessData.name} (model ${pickupModelId})`);
|
||||
|
||||
let exitPickup = createGamePickup(pickupModelId, businessData.exitPosition, getGameConfig().pickupTypes[getGame()].business);
|
||||
if(exitPickup != null) {
|
||||
if(businessData.exitDimension != -1) {
|
||||
setElementDimension(exitPickup, businessData.exitDimension);
|
||||
setElementOnAllDimensions(exitPickup, false);
|
||||
} else {
|
||||
setElementOnAllDimensions(exitPickup, true);
|
||||
}
|
||||
|
||||
if(getGlobalConfig().businessPickupStreamInDistance == -1 || getGlobalConfig().businessPickupStreamOutDistance == -1) {
|
||||
exitPickup.netFlags.distanceStreaming = false;
|
||||
} else {
|
||||
setElementStreamInDistance(exitPickup, getGlobalConfig().businessPickupStreamInDistance);
|
||||
setElementStreamOutDistance(exitPickup, getGlobalConfig().businessPickupStreamOutDistance);
|
||||
}
|
||||
setElementTransient(exitPickup, false);
|
||||
getBusinessData(businessId).exitPickup = exitPickup;
|
||||
updateBusinessPickupLabelData(businessId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1871,6 +1884,10 @@ function createBusinessExitPickup(businessId) {
|
||||
*
|
||||
*/
|
||||
function createBusinessExitBlip(businessId) {
|
||||
if(!areServerElementsSupported()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!getServerConfig().createBusinessBlips) {
|
||||
return false;
|
||||
}
|
||||
@@ -1878,36 +1895,38 @@ function createBusinessExitBlip(businessId) {
|
||||
let businessData = getBusinessData(businessId);
|
||||
|
||||
if(businessData.hasInterior) {
|
||||
if(businessData.exitBlipModel != -1) {
|
||||
let blipModelId = getGameConfig().blipSprites[getGame()].Business;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(getServerData().businesses[businessId].exitBlipModel != 0) {
|
||||
blipModelId = businessData.exitBlipModel;
|
||||
}
|
||||
if(businessData.exitBlipModel == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(areServerElementsSupported()) {
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating exit blip for business ${businessData.name} (model ${blipModelId})`);
|
||||
let blipModelId = getGameConfig().blipSprites[getGame()].Business;
|
||||
|
||||
let exitBlip = createGameBlip(businessData.exitPosition, blipModelId, 1, getColourByName("businessBlue"));
|
||||
if(exitBlip != null) {
|
||||
if(businessData.exitDimension != -1) {
|
||||
setElementDimension(exitBlip, businessData.exitDimension);
|
||||
setElementOnAllDimensions(exitBlip, false);
|
||||
} else {
|
||||
setElementOnAllDimensions(exitBlip, true);
|
||||
}
|
||||
if(businessData.exitBlipModel != 0) {
|
||||
blipModelId = businessData.exitBlipModel;
|
||||
}
|
||||
|
||||
if(getGlobalConfig().businessBlipStreamInDistance == -1 || getGlobalConfig().businessBlipStreamOutDistance == -1) {
|
||||
exitBlip.netFlags.distanceStreaming = false;
|
||||
} else {
|
||||
setElementStreamInDistance(exitBlip, getGlobalConfig().businessBlipStreamInDistance);
|
||||
setElementStreamOutDistance(exitBlip, getGlobalConfig().businessBlipStreamOutDistance);
|
||||
}
|
||||
setElementTransient(exitBlip, false);
|
||||
businessData.exitBlip = exitBlip;
|
||||
}
|
||||
}
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Job]: Creating exit blip for business ${businessData.name} (model ${blipModelId})`);
|
||||
|
||||
let exitBlip = createGameBlip(businessData.exitPosition, blipModelId, 1, getColourByName("businessBlue"));
|
||||
if(exitBlip != null) {
|
||||
if(businessData.exitDimension != -1) {
|
||||
setElementDimension(exitBlip, businessData.exitDimension);
|
||||
setElementOnAllDimensions(exitBlip, false);
|
||||
} else {
|
||||
setElementOnAllDimensions(exitBlip, true);
|
||||
}
|
||||
|
||||
if(getGlobalConfig().businessBlipStreamInDistance == -1 || getGlobalConfig().businessBlipStreamOutDistance == -1) {
|
||||
exitBlip.netFlags.distanceStreaming = false;
|
||||
} else {
|
||||
setElementStreamInDistance(exitBlip, getGlobalConfig().businessBlipStreamInDistance);
|
||||
setElementStreamOutDistance(exitBlip, getGlobalConfig().businessBlipStreamOutDistance);
|
||||
}
|
||||
setElementTransient(exitBlip, false);
|
||||
businessData.exitBlip = exitBlip;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2475,17 +2494,14 @@ function cacheAllBusinessItems() {
|
||||
|
||||
// Caches all items for a business by businessId
|
||||
function cacheBusinessItems(businessId) {
|
||||
getBusinessData(businessId).floorItemCache.splice(0, getBusinessData(businessId).floorItemCache.length);
|
||||
getBusinessData(businessId).storageItemCache.splice(0, getBusinessData(businessId).storageItemCache.length);
|
||||
clearArray(getBusinessData(businessId).floorItemCache);
|
||||
clearArray(getBusinessData(businessId).storageItemCache);
|
||||
|
||||
let businessData = getBusinessData(businessId);
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Business] Caching business items for business ${businessId} (${businessData.name}) ...`);
|
||||
getBusinessData(businessId).floorItemCache = getServerData().items.filter(item => item.ownerType == VRR_ITEM_OWNER_BIZFLOOR && item.ownerId == businessData.databaseId);
|
||||
getBusinessData(businessId).storageItemCache = getServerData().items.filter(item => item.ownerType == VRR_ITEM_OWNER_BIZSTORAGE && item.ownerId == businessData.databaseId);
|
||||
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Business] Caching business items for business ${businessId} (${getBusinessData(businessId).name}) ...`);
|
||||
for(let i in getServerData().items) {
|
||||
if(getItemData(i).ownerType == VRR_ITEM_OWNER_BIZFLOOR && getItemData(i).ownerId == getBusinessData(businessId).databaseId) {
|
||||
getBusinessData(businessId).floorItemCache.push(i);
|
||||
} else if(getItemData(i).ownerType == VRR_ITEM_OWNER_BIZSTORAGE && getItemData(i).ownerId == getBusinessData(businessId).databaseId) {
|
||||
getBusinessData(businessId).storageItemCache.push(i);
|
||||
}
|
||||
}
|
||||
logToConsole(LOG_VERBOSE, `[VRR.Business] Successfully cached ${getBusinessData(businessId).floorItemCache.length} floor items and ${getBusinessData(businessId).storageItemCache} storage items for business ${businessId} (${getBusinessData(businessId).name})!`);
|
||||
}
|
||||
|
||||
|
||||
@@ -841,7 +841,7 @@ function createAllHouseBlips() {
|
||||
// ===========================================================================
|
||||
|
||||
function createHouseEntrancePickup(houseId) {
|
||||
if(areServerElementsSupported()) {
|
||||
if(!areServerElementsSupported()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -885,7 +885,7 @@ function createHouseEntrancePickup(houseId) {
|
||||
// ===========================================================================
|
||||
|
||||
function createHouseEntranceBlip(houseId) {
|
||||
if(areServerElementsSupported()) {
|
||||
if(!areServerElementsSupported()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -938,7 +938,7 @@ function createHouseEntranceBlip(houseId) {
|
||||
// ===========================================================================
|
||||
|
||||
function createHouseExitPickup(houseId) {
|
||||
if(areServerElementsSupported()) {
|
||||
if(!areServerElementsSupported()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -966,9 +966,9 @@ function createHouseExitPickup(houseId) {
|
||||
pickupModelId = houseData.exitPickupModel;
|
||||
}
|
||||
|
||||
let exitPickup = createGamePickup(pickupModelId, getHouseData(houseId).exitPosition, getGameConfig().pickupTypes[getGame()].house);
|
||||
let exitPickup = createGamePickup(pickupModelId, houseData.exitPosition, getGameConfig().pickupTypes[getGame()].house);
|
||||
if(exitPickup != null) {
|
||||
setElementDimension(exitPickup, getHouseData(houseId).exitDimension);
|
||||
setElementDimension(exitPickup, houseData.exitDimension);
|
||||
setElementOnAllDimensions(exitPickup, false);
|
||||
setElementStreamInDistance(exitPickup, getGlobalConfig().housePickupStreamInDistance);
|
||||
setElementStreamOutDistance(exitPickup, getGlobalConfig().housePickupStreamOutDistance);
|
||||
@@ -977,13 +977,12 @@ function createHouseExitPickup(houseId) {
|
||||
getHouseData(houseId).exitPickup = exitPickup;
|
||||
updateHousePickupLabelData(houseId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
|
||||
function createHouseExitBlip(houseId) {
|
||||
if(areServerElementsSupported()) {
|
||||
if(!areServerElementsSupported()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1005,13 +1004,13 @@ function createHouseExitBlip(houseId) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let blipModelId = getGameConfig().blipSprites[getGame()].House;
|
||||
let blipModelId = getGameConfig().blipSprites[getGame()].Exit;
|
||||
|
||||
if(getServerData().houses[houseId].exitBlipModel != 0) {
|
||||
blipModelId = getHouseData(houseId).exitBlipModel;
|
||||
blipModelId = houseData.exitBlipModel;
|
||||
}
|
||||
|
||||
let exitBlip = createGameBlip(blipModelId, getHouseData(houseId).exitPosition, 1, getColourByName("houseGreen"));
|
||||
let exitBlip = createGameBlip(houseData.exitPosition, blipModelId, 1, getColourByName("houseGreen"));
|
||||
if(exitBlip != null) {
|
||||
if(houseData.exitDimension != -1) {
|
||||
setElementDimension(exitBlip, houseData.exitDimension);
|
||||
@@ -1567,7 +1566,7 @@ function updateHousePickupLabelData(houseId) {
|
||||
setEntityData(houseData.entrancePickup, "vrr.owner.type", VRR_PICKUP_HOUSE_ENTRANCE, false);
|
||||
setEntityData(houseData.entrancePickup, "vrr.owner.id", houseId, false);
|
||||
setEntityData(houseData.entrancePickup, "vrr.label.type", VRR_LABEL_HOUSE, true);
|
||||
//setEntityData(houseData.entrancePickup, "vrr.label.name", houseData.description, true);
|
||||
setEntityData(houseData.entrancePickup, "vrr.label.name", houseData.description, true);
|
||||
setEntityData(houseData.entrancePickup, "vrr.label.locked", houseData.locked, true);
|
||||
if(houseData.buyPrice > 0) {
|
||||
setEntityData(houseData.entrancePickup, "vrr.label.price", houseData.buyPrice, true);
|
||||
|
||||
@@ -1383,13 +1383,9 @@ function setAllItemTypeDataIndexes() {
|
||||
// ===========================================================================
|
||||
|
||||
function cacheAllGroundItems() {
|
||||
getServerData().groundItemCache = [];
|
||||
|
||||
for(let i in getServerData().items) {
|
||||
if(getServerData().items[i].ownerType == VRR_ITEM_OWNER_GROUND) {
|
||||
getServerData().groundItemCache.push(i);
|
||||
}
|
||||
}
|
||||
clearArray(getServerData().groundItemCache);
|
||||
getServerData().groundItemCache = getServerData().items.filter(item => item.ownerType == VRR_ITEM_OWNER_GROUND);
|
||||
getServerData().groundPlantCache = getServerData().items.filter(item => item.ownerType == VRR_ITEM_OWNER_PLANT);
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
@@ -1425,19 +1421,11 @@ function cachePlayerHotBarItems(client) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for(let i = 0 ; i < 9 ; i++) {
|
||||
getPlayerData(client).hotBarItems[i] = -1;
|
||||
}
|
||||
clearArray(getPlayerData(client).hotBarItems);
|
||||
getPlayerData(client).hotBarItems = getServerData().items.filter(item => item.ownerType == VRR_ITEM_OWNER_PLAYER && item.ownerId == getPlayerCurrentSubAccount(client).databaseId);
|
||||
|
||||
for(let i in getServerData().items) {
|
||||
if(getItemData(i).ownerType == VRR_ITEM_OWNER_PLAYER) {
|
||||
if(getItemData(i).ownerId == getPlayerCurrentSubAccount(client).databaseId) {
|
||||
let firstSlot = getPlayerFirstEmptyHotBarSlot(client);
|
||||
if(firstSlot != -1) {
|
||||
getPlayerData(client).hotBarItems[firstSlot] = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getPlayerData(client).hotBarItems.length < getGlobalConfig().maxPlayerItemSlots) {
|
||||
getPlayerData(client).hotBarItems.concat(Array(getGlobalConfig().maxPlayerItemSlots-getPlayerData(client).hotBarItems.length).fill(-1));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user