private static void CheckForDrownedVehicles() { var vehicles = VehicleManager.vehicles; for (var i = vehicles.Count - 1; i >= 0; i--) { if (!VehicleUtil.VehicleHasOwner(vehicles[i])) { continue; } if (!vehicles[i].isDrowned) { continue; } var vName = vehicles[i].asset.vehicleName; var vId = vehicles[i].asset.id; var vOwner = vehicles[i].lockedOwner; var vehicleCount = DbManager.GetVehicleCount(vOwner.m_SteamID.ToString(), "Drown"); if (vehicleCount >= Conf.DrownGarageSlot && Conf.DrownGarageSlot != -1) { continue; } var drownedVehicleRegion = BarricadeManager.getRegionFromVehicle(vehicles[i]); GarageUtil.SaveVgVehicleToSql(vOwner.m_SteamID, "Drown", "Drowned", vehicles[i], drownedVehicleRegion); if (UnturnedPlayer.FromCSteamID(vOwner) != null) { UnturnedPlayer.FromCSteamID(vOwner).SendChat( Inst.Translate("rfgarage_autogarage_drown_success", vName, vId), MsgColor, Conf.AnnouncerIconUrl); } Logger.LogWarning( $"[RFGarage] {vName} [{vId}] has been added automatically to {vOwner.m_SteamID}'s garage due to Drown"); } }
private static bool CheckResponse(UnturnedPlayer player) { GarageUtil.GarageCheck(player, GarageModel.Parse("Drown"), out var responseType, true); if (!Plugin.DbManager.IsVehicleExist(player.CSteamID.m_SteamID.ToString(), "Drown", "Drowned")) { responseType = EResponseType.DONT_HAVE_VEHICLE; } switch (responseType) { case EResponseType.DONT_HAVE_VEHICLE: player.SendChat(Plugin.Inst.Translate("rfgarage_command_garage_no_vehicle", "Drown"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.GARAGE_NOT_FOUND: player.SendChat(Plugin.Inst.Translate("rfgarage_command_garage_not_found"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.GARAGE_NO_PERMISSION: player.SendChat(Plugin.Inst.Translate("rfgarage_command_garage_no_permission", "Drown", "garage.drown"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.SUCCESS: return(true); default: throw new ArgumentOutOfRangeException(); } }
public void Execute(IRocketPlayer caller, string[] command) { if (command.Length != 3) { UnturnedChat.Say(caller, Plugin.Inst.Translate("rfgarage_command_invalid_parameter", Syntax), Plugin.MsgColor); return; } var player = (UnturnedPlayer)caller; string garage; if (command[1].ToLower() != "drown") { if (!CheckResponse(player, command)) { return; } garage = GarageModel.Parse(command[1]).Name; } else { garage = "Drown"; } GarageUtil.LoadVgVehicleFromSql(player, garage, command[1].ToLower() != "drown" ? command[2] : "Drowned", out var vehicle, command[0]); UnturnedChat.Say(caller, Plugin.Inst.Translate("rfgarage_command_gr_success", vehicle.asset.vehicleName, vehicle.asset.id, garage), Plugin.MsgColor); }
private static bool CheckResponse(UnturnedPlayer player, string[] commands) { GarageUtil.SuperGarageRetrieveChecks(player, out var responseType, commands); switch (responseType) { case EResponseType.DONT_HAVE_VEHICLE: var garage = GarageModel.Parse(commands?[1]); UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_sgr_garage_no_vehicle", commands?[0], garage.Name), Plugin.MsgColor); return(false); case EResponseType.GARAGE_NOT_FOUND: UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_garage_not_found"), Plugin.MsgColor); return(false); case EResponseType.INVALID_STEAM_ID: UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_invalid_id"), Plugin.MsgColor); return(false); case EResponseType.SUCCESS: return(true); default: UnturnedChat.Say(player, responseType.ToString(), Plugin.MsgColor); return(false); } }
private static bool CheckResponse(UnturnedPlayer player, string[] commands) { GarageUtil.GarageRetrieveAllChecks(player, out var responseType, commands); GarageModel garageModel; switch (responseType) { case EResponseType.DONT_HAVE_VEHICLE: garageModel = GarageModel.Parse(commands?[0]); UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_garage_no_vehicle", garageModel.Name), Plugin.MsgColor); return(false); case EResponseType.GARAGE_NOT_FOUND: UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_garage_not_found"), Plugin.MsgColor); return(false); case EResponseType.GARAGE_NO_PERMISSION: garageModel = GarageModel.Parse(commands?[0]); UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_garage_no_permission", garageModel.Name, garageModel.Permission), Plugin.MsgColor); return(false); case EResponseType.SUCCESS: return(true); default: UnturnedChat.Say(player, responseType.ToString(), Plugin.MsgColor); return(false); } }
private static bool CheckResponse(UnturnedPlayer player, string[] commands, out InteractableVehicle vehicle, out BarricadeRegion vehicleRegion) { GarageUtil.SuperGarageAddChecks(player, commands, out vehicle, out vehicleRegion, out var responseType); switch (responseType) { case EResponseType.GARAGE_NOT_FOUND: UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_garage_not_found"), Plugin.MsgColor); return(false); case EResponseType.INVALID_STEAM_ID: UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_invalid_id"), Plugin.MsgColor); return(false); case EResponseType.SAME_NAME_AS_GARAGE: UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_vehicle_name_same_as_garage"), Plugin.MsgColor); return(false); case EResponseType.SUCCESS: return(true); case EResponseType.VEHICLE_NOT_FOUND: UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_vehicle_not_found"), Plugin.MsgColor); return(false); default: UnturnedChat.Say(player, responseType.ToString(), Plugin.MsgColor); return(false); } }
private static bool CheckResponse(UnturnedPlayer player, string steamID, GarageModel garageModel) { GarageUtil.SuperGarageListCheck(player, steamID, garageModel, out var responseType, garageModel == null); switch (responseType) { case EResponseType.GARAGE_NOT_FOUND: UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_garage_not_found"), Plugin.MsgColor); return(false); case EResponseType.INVALID_STEAM_ID: UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_invalid_id"), Plugin.MsgColor); return(false); case EResponseType.PLAYER_NOT_ONLINE: UnturnedChat.Say(player, Plugin.Inst.Translate("rfgarage_command_player_not_online"), Plugin.MsgColor); return(false); case EResponseType.SUCCESS: return(true); default: UnturnedChat.Say(player, responseType.ToString(), Plugin.MsgColor); return(false); } }
private static bool CheckResponse(UnturnedPlayer player, string[] commands) { GarageUtil.GarageRetrieveChecks(player, out var responseType, commands); GarageModel garageModel; switch (responseType) { case EResponseType.DONT_HAVE_VEHICLE: garageModel = commands.Length == 1 ? Plugin.SelectedGarageDict[player.CSteamID] : GarageModel.Parse(commands[0]); player.SendChat(Plugin.Inst.Translate("rfgarage_command_garage_no_vehicle", garageModel.Name), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.GARAGE_NOT_FOUND: player.SendChat(Plugin.Inst.Translate("rfgarage_command_garage_not_found"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.GARAGE_NO_PERMISSION: garageModel = GarageModel.Parse(commands?[0]); player.SendChat(Plugin.Inst.Translate("rfgarage_command_garage_no_permission", garageModel.Name, garageModel.Permission), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.GARAGE_NOT_SELECTED: player.SendChat(Plugin.Inst.Translate("rfgarage_command_gr_garage_not_selected"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.SUCCESS: return(true); default: player.SendChat(responseType.ToString(), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); } }
public void Execute(IRocketPlayer caller, string[] command) { if (command.Length > 2 || command.Length == 0) { caller.SendChat(Plugin.Inst.Translate("rfgarage_command_invalid_parameter", Syntax), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; } var player = (UnturnedPlayer)caller; switch (command.Length) { case 1 when Plugin.Conf.VirtualGarages.Any(g => string.Equals(g.Name, command[0], StringComparison.CurrentCultureIgnoreCase)): caller.SendChat(Plugin.Inst.Translate("rfgarage_command_invalid_parameter", Syntax), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; case 1 when !Plugin.Conf.VirtualGarages.Any(g => string.Equals(g.Name, command[0], StringComparison.CurrentCultureIgnoreCase)): { if (!CheckResponse(player, command, out var vehicle, out var vehicleRegion)) { return; } var garage = Plugin.SelectedGarageDict[player.CSteamID]; GarageUtil.SaveVgVehicleToSql(player.CSteamID.m_SteamID, garage.Name, command[0], vehicle, vehicleRegion); caller.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_success", vehicle.asset.vehicleName, vehicle.asset.id, garage.Name), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; } case 1: caller.SendChat(Plugin.Inst.Translate("rfgarage_command_invalid_parameter"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; case 2: { if (!CheckResponse(player, command, out var vehicle, out var vehicleRegion)) { return; } var garage = GarageModel.Parse(command[0]); GarageUtil.SaveVgVehicleToSql(player.CSteamID.m_SteamID, garage.Name, command[1], vehicle, vehicleRegion); caller.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_success", vehicle.asset.vehicleName, vehicle.asset.id, garage.Name), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; } default: caller.SendChat(Plugin.Inst.Translate("rfgarage_command_invalid_parameter"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); break; } }
public void Execute(IRocketPlayer caller, string[] command) { if (command.Length < 1 || command.Length > 2) { UnturnedChat.Say(caller, Plugin.Inst.Translate("rfgarage_command_invalid_parameter"), Plugin.MsgColor); return; } var player = (UnturnedPlayer)caller; switch (command.Length) { case 1 when !CheckResponse(player, command[0], null): return; case 1: { var target = UnturnedPlayer.FromName(command[0]); var garages = GarageUtil.GetAllGarages(target); var list = string.Join(", ", (from t in garages let count = Plugin.DbManager.GetVehicleCount(command[0], t.Name) select $"{t.Name} ({count}/{t.Slot})").ToArray()); if (!garages.Any()) { list = "None"; } UnturnedChat.Say(caller, Plugin.Inst.Translate("rfgarage_command_glist_garages_success", list), Plugin.MsgColor); return; } case 2 when !CheckResponse(player, command[0], GarageModel.Parse(command[1])): return; case 2: { var garage = GarageModel.Parse(command[1]); var vgVehicles = Plugin.DbManager.ReadVgVehicleByGarageName(command[0], garage.Name); var playerVgVehicles = vgVehicles as PlayerSerializableVehicleModel[] ?? vgVehicles.ToArray(); foreach (var vgVehicle in playerVgVehicles) { var vg = vgVehicle.Info.ToVgVehicle(); var asset = (VehicleAsset)Assets.find(EAssetType.VEHICLE, vg.ID); var list = $"[Name] {vgVehicle.VehicleName}, [VName] {asset.vehicleName}, [ID] {asset.id}"; UnturnedChat.Say(caller, Plugin.Inst.Translate("rfgarage_command_glist_garage_success", garage.Name, list), Plugin.MsgColor); } break; } } }
public static void OnConnected(UnturnedPlayer player) { if (!Plugin.SelectedGarageDict.ContainsKey(player.CSteamID)) { Plugin.SelectedGarageDict.Add(player.CSteamID, GarageUtil.GetFirstGarage(player)); } if (!Plugin.GarageAddAllQueueDict.ContainsKey(player.CSteamID)) { Plugin.GarageAddAllQueueDict.Add(player.CSteamID, false); } if (!Plugin.GarageRetrieveAllQueueDict.ContainsKey(player.CSteamID)) { Plugin.GarageRetrieveAllQueueDict.Add(player.CSteamID, new List <PlayerSerializableVehicleModel>()); } }
public void Execute(IRocketPlayer caller, string[] command) { if (command.Length > 1) { caller.SendChat(Plugin.Inst.Translate("rfgarage_command_invalid_parameter"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; } var player = (UnturnedPlayer)caller; switch (command.Length) { case 0: { var garages = GarageUtil.GetAllGarages(player); var list = !garages.Any() ? "None" : string.Join(", ", (from t in garages let count = Plugin.DbManager.GetVehicleCount(player.CSteamID.m_SteamID.ToString(), t.Name) select $"{t.Name} ({count}/{t.Slot})").ToArray()); caller.SendChat(Plugin.Inst.Translate("rfgarage_command_glist_garages_success", list), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; } case 1: { if (!CheckResponse(player, GarageModel.Parse(command[0]))) { return; } var garage = GarageModel.Parse(command[0]); var vgVehicles = Plugin.DbManager.ReadVgVehicleByGarageName(player.CSteamID.m_SteamID.ToString(), garage.Name); var playerVgVehicles = vgVehicles as PlayerSerializableVehicleModel[] ?? vgVehicles.ToArray(); foreach (var vgVehicle in playerVgVehicles) { var vg = vgVehicle.Info.ToVgVehicle(); var asset = (VehicleAsset)Assets.find(EAssetType.VEHICLE, vg.ID); var list = $"[Name] {vgVehicle.VehicleName}, [VName] {asset.vehicleName}, [ID] {asset.id}"; caller.SendChat(Plugin.Inst.Translate("rfgarage_command_glist_garage_success", garage.Name, list), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); } return; } default: caller.SendChat(Plugin.Inst.Translate("rfgarage_command_invalid_parameter"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); break; } }
public void Execute(IRocketPlayer caller, string[] command) { if (command.Length != 3) { UnturnedChat.Say(caller, Plugin.Inst.Translate("rfgarage_command_invalid_parameter", Syntax), Plugin.MsgColor); return; } var player = (UnturnedPlayer)caller; if (!CheckResponse(player, command, out var vehicle, out var vehicleRegion)) { return; } var garage = GarageModel.Parse(command[1]); GarageUtil.SaveVgVehicleToSql(ulong.Parse(command[0]), garage.Name, command[2], vehicle, vehicleRegion); UnturnedChat.Say(caller, Plugin.Inst.Translate("rfgarage_command_sgadd_success", vehicle.asset.vehicleName, vehicle.asset.id, garage.Name), Plugin.MsgColor); }
private static bool CheckResponse(UnturnedPlayer player, GarageModel garageModel) { GarageUtil.GarageCheck(player, garageModel, out var responseType, true); switch (responseType) { case EResponseType.GARAGE_NOT_FOUND: player.SendChat(Plugin.Inst.Translate("rfgarage_command_garage_not_found"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.GARAGE_NO_PERMISSION: player.SendChat(Plugin.Inst.Translate("rfgarage_command_garage_no_permission", garageModel.Name, garageModel.Permission), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.SUCCESS: return(true); default: player.SendChat(responseType.ToString(), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); } }
public void Execute(IRocketPlayer caller, string[] command) { if (command.Length > 0) { caller.SendChat(Plugin.Inst.Translate("rfgarage_command_invalid_parameter", Syntax), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; } var player = (UnturnedPlayer)caller; if (command.Length != 0) { return; } if (!CheckResponse(player)) { return; } GarageUtil.LoadVgVehicleFromSql(player, "Drown", "Drowned", out var vehicle); player.SendChat(Plugin.Inst.Translate("rfgarage_command_gr_success", vehicle.asset.vehicleName, vehicle.asset.id, "Drown"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); }
private static bool CheckResponse(UnturnedPlayer player, string[] commands, out InteractableVehicle vehicle, out BarricadeRegion vehicleRegion) { GarageUtil.GarageAddChecks(player, commands, out vehicle, out vehicleRegion, out var responseType, out var blacklistedID); GarageModel garageModel; switch (responseType) { case EResponseType.VEHICLE_NOT_FOUND: player.SendChat(Plugin.Inst.Translate("rfgarage_command_vehicle_not_found"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.GARAGE_NOT_FOUND: player.SendChat(Plugin.Inst.Translate("rfgarage_command_garage_not_found"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.VEHICLE_NOT_OWNER: player.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_vehicle_not_owner"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.GARAGE_FULL: garageModel = Plugin.SelectedGarageDict[player.CSteamID]; player.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_garage_full", garageModel.Name, garageModel.Slot), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.GARAGE_NO_PERMISSION: garageModel = GarageModel.Parse(commands?[0]); player.SendChat(Plugin.Inst.Translate("rfgarage_command_garage_no_permission", garageModel.Name, garageModel.Permission), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.BLACKLIST_VEHICLE: var vehicleAsset = (VehicleAsset)Assets.find(EAssetType.VEHICLE, blacklistedID); player.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_blacklist_vehicle", vehicleAsset.vehicleName, vehicleAsset.id), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.GARAGE_NOT_SELECTED: player.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_garage_not_selected"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.BLACKLIST_BARRICADE: var barricadeAsset = (ItemBarricadeAsset)Assets.find(EAssetType.ITEM, blacklistedID); player.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_blacklist_barricade", barricadeAsset.itemName, barricadeAsset.id), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.BLACKLIST_TRUNK_ITEM: var itemAsset = (ItemAsset)Assets.find(EAssetType.ITEM, blacklistedID); player.SendChat( Plugin.Inst.Translate("rfgarage_command_gadd_blacklist_trunk_item", itemAsset.itemName, itemAsset.id), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.SAME_NAME_AS_GARAGE: player.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_vehicle_name_same_as_garage"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); case EResponseType.SUCCESS: return(true); default: player.SendChat(responseType.ToString(), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return(false); } }
public void Execute(IRocketPlayer caller, string[] command) { if (command.Length > 1) { caller.SendChat(Plugin.Inst.Translate("rfgarage_command_invalid_parameter", Syntax), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; } var player = (UnturnedPlayer)caller; switch (command.Length) { case 0: Plugin.GarageAddAllQueueDict[player.CSteamID] = true; caller.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_all_ask_confirm"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; case 1: switch (command[0].ToLower()) { case "confirm" when !Plugin.GarageAddAllQueueDict[player.CSteamID]: caller.SendChat(Plugin.Inst.Translate("rfgarage_command_all_no_queue"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; case "confirm": { caller.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_all_confirm"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); // Tuple < availableGarage, availableSlot > var passedVehicles = new List <InteractableVehicle>(); var blacklistedVehicles = new List <InteractableVehicle>(); var availableGarages = GarageUtil.GetAllGarages(player); foreach (var interactableVehicle in VehicleManager.vehicles.Where(interactableVehicle => interactableVehicle.lockedOwner.m_SteamID == player.CSteamID.m_SteamID)) { GarageUtil.GarageAddAllChecks(player, interactableVehicle, out var response, out _); switch (response) { case EResponseType.BLACKLIST_BARRICADE: case EResponseType.BLACKLIST_TRUNK_ITEM: case EResponseType.BLACKLIST_VEHICLE: blacklistedVehicles.Add(interactableVehicle); break; case EResponseType.SUCCESS: passedVehicles.Add(interactableVehicle); break; default: throw new ArgumentOutOfRangeException(); } } var tupleGarages = (from garage in availableGarages let garageOccupiedSlot = Plugin.DbManager.GetVehicleCount(player.CSteamID.m_SteamID.ToString(), garage.Name) where garage.Slot > garageOccupiedSlot select new Tuple <GarageModel, uint>(garage, garageOccupiedSlot)).ToList(); var vehicleIndex = 0; var successVehicles = new List <InteractableVehicle>(); foreach (var(garage, occupiedSlot) in tupleGarages) { var i = 0; while (i < (garage.Slot - occupiedSlot) && vehicleIndex < passedVehicles.Count) { GarageUtil.SaveVgVehicleToSql(player.CSteamID.m_SteamID, garage.Name, passedVehicles[vehicleIndex].asset.name, passedVehicles[vehicleIndex], BarricadeManager.getRegionFromVehicle(passedVehicles[vehicleIndex])); successVehicles.Add(passedVehicles[vehicleIndex]); vehicleIndex++; i++; } } caller.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_all_success", vehicleIndex, passedVehicles.Count - vehicleIndex), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); foreach (var vehicle in successVehicles) { caller.SendChat(Plugin.Inst.Translate("rfgarage_command_all_success_vehicle", vehicle.asset.id, vehicle.asset.vehicleName), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); } foreach (var vehicle in blacklistedVehicles) { caller.SendChat(Plugin.Inst.Translate("rfgarage_command_gadd_all_blacklist_vehicle", vehicle.asset.id, vehicle.asset.vehicleName), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); } passedVehicles.RemoveRange(0, vehicleIndex); foreach (var vehicle in passedVehicles) { caller.SendChat(Plugin.Inst.Translate("rfgarage_command_all_fail_vehicle", vehicle.asset.id, vehicle.asset.vehicleName), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); } Plugin.GarageAddAllQueueDict[player.CSteamID] = false; return; } case "abort": Plugin.GarageAddAllQueueDict[player.CSteamID] = false; caller.SendChat(Plugin.Inst.Translate("rfgarage_command_all_abort"), Plugin.MsgColor, Plugin.Conf.AnnouncerIconUrl); return; } break; } }