public void Execute(IRocketPlayer caller, string[] command) { UnturnedPlayer player = (UnturnedPlayer)caller; Transform transform; transform = RaycastHelper.GetBarricadeTransform(player.Player, out _, out _); if (transform == null) { transform = RaycastHelper.GetStructureTransform(player.Player, out _); } if (transform == null) { MessageHelper.Send(caller, "DoorNotLooking"); return; } Door door = pluginInstance.DoorService.GetDoorOrItem(transform); if (door == null) { MessageHelper.Send(caller, "DoorNotForSale"); return; } MessageHelper.Send(caller, "CheckDoorSuccess", door.Id, door.PriceString, door.OwnerName); }
public void Execute(IRocketPlayer caller, string[] command) { UnturnedPlayer player = (UnturnedPlayer)caller; Transform transform = RaycastHelper.GetBarricadeTransform(player.Player, out _, out BarricadeDrop drop); if (transform == null || drop.interactable as InteractableDoor == null) { MessageHelper.Send(caller, "DoorNotLooking"); return; } Door door = pluginInstance.DoorService.GetDoor(transform); if (door == null || door.IsSold) { MessageHelper.Send(caller, "DoorNotForSale"); return; } decimal balance = Uconomy.Instance.Database.GetBalance(caller.Id); if (balance < door.Price) { MessageHelper.Send(caller, "BuyDoorCantAfford", door.PriceString); return; } Uconomy.Instance.Database.IncreaseBalance(caller.Id, -door.Price); Uconomy.Instance.Database.IncreaseBalance(door.OwnerId, door.Price); pluginInstance.DoorService.BuyDoor(door, player.Player); MessageHelper.Send(caller, "BuyDoorSuccess", door.PriceString); }
private void LoadDoors(int i) { database.Reload(); foreach (Door door in database.Doors) { Vector3 pos = door.Position.ToVector3(); door.Transform = RaycastHelper.GetBarricadeTransform(pos); if (door.Transform == null) { Logger.LogWarning($"Door #{door.Id} transform not found"); } foreach (DoorItem item in door.Items) { pos = item.Position.ToVector3(); if (item.IsBarricade) { item.Transform = RaycastHelper.GetBarricadeTransform(pos); } else { item.Transform = RaycastHelper.GetStructureTransform(pos); } if (item.Transform == null) { Logger.LogWarning($"Door #{door.Id} item transform not found"); } } } }
public void Execute(IRocketPlayer caller, string[] command) { if (command.Length < 1) { MessageHelper.Send(caller, "SellDoorFormat"); return; } if (!decimal.TryParse(command[0], out decimal price)) { MessageHelper.Send(caller, "SellDoorWrongPrice", command[0]); return; } price = Math.Abs(price); UnturnedPlayer player = (UnturnedPlayer)caller; Transform transform = RaycastHelper.GetBarricadeTransform(player.Player, out BarricadeData barricadeData, out BarricadeDrop drop); if (transform == null || drop.interactable as InteractableDoor == null) { MessageHelper.Send(caller, "DoorNotLooking"); return; } if (barricadeData.owner != player.CSteamID.m_SteamID) { MessageHelper.Send(caller, "DoorNotOwner"); return; } Door door = pluginInstance.DoorService.GetDoor(transform); // update door price if (door != null) { pluginInstance.DoorService.UpdateDoorPrice(door, price, player.Player); MessageHelper.Send(caller, "SellDoorSuccess", door.Id, door.PriceString); return; } if (!player.IsAdmin && !player.HasPermission("selldoor.admin")) { MessageHelper.Send(caller, "SellDoorNoPermission"); return; } door = pluginInstance.DoorService.SellDoor(transform, price, player.Player); MessageHelper.Send(caller, "SellDoorSuccess", door.Id, door.PriceString); }
public void Execute(IRocketPlayer caller, string[] command) { UnturnedPlayer player = (UnturnedPlayer)caller; int doorId = 0; bool flag = true; if (command.Length > 0) { flag = false; if (!int.TryParse(command[0], out doorId)) { MessageHelper.Send(caller, "WrongDoorId", command[0]); return; } } Door door; if (flag) { Transform transform = RaycastHelper.GetBarricadeTransform(player.Player, out _, out BarricadeDrop drop); if (transform == null || drop.interactable as InteractableDoor == null) { MessageHelper.Send(caller, "DoorNotLooking"); return; } door = pluginInstance.DoorService.GetDoor(transform); } else { door = pluginInstance.DoorService.GetDoor(doorId); } if (door == null) { MessageHelper.Send(caller, "DoorNotForSale"); return; } pluginInstance.DoorService.RemoveDoor(door); MessageHelper.Send(caller, "DeleteDoorSucccess", door.Id, door.Items.Count); }
public void Execute(IRocketPlayer caller, string[] command) { UnturnedPlayer player = (UnturnedPlayer)caller; Transform transform = RaycastHelper.GetBarricadeTransform(player.Player, out _, out BarricadeDrop drop); if (transform == null || drop.interactable as InteractableDoor == null) { MessageHelper.Send(caller, "DoorNotLooking"); return; } Door door = pluginInstance.DoorService.GetDoor(transform); if (door == null || door.IsSold) { MessageHelper.Send(caller, "DoorNotForSale"); return; } MessageHelper.Send(caller, "CostDoorPrice", door.PriceString); }
public void Execute(IRocketPlayer caller, string[] command) { UnturnedPlayer player = (UnturnedPlayer)caller; string name = string.Empty; Transform transform = RaycastHelper.GetBarricadeTransform(player.Player, out BarricadeData barricadeData, out BarricadeDrop drop); if (transform == null) { transform = RaycastHelper.GetStructureTransform(player.Player, out StructureData structureData); if (transform != null) { name = structureData.structure.asset.itemName; } } else { name = barricadeData.barricade.asset.itemName; } if (transform == null) { MessageHelper.Send(caller, "DoorItemNotLooking"); return; } Door door = pluginInstance.DoorService.GetDoorFromItem(transform); if (door == null) { MessageHelper.Send(caller, "NotDoorItem", name); return; } pluginInstance.DoorService.RemoveDoorItem(door, transform); MessageHelper.Send(caller, "UnlinkDoorSuccess", name, door.Id); }
public void Execute(IRocketPlayer caller, string[] command) { UnturnedPlayer player = (UnturnedPlayer)caller; if (command.Length < 1) { MessageHelper.Send(caller, "LinkDoorFormat"); return; } if (!int.TryParse(command[0], out int doorId)) { MessageHelper.Send(caller, "LinkDoorWrongDoorId", command[0]); return; } DoorItem doorItem = new DoorItem(); string name = string.Empty; ulong ownerId = 0; doorItem.Transform = RaycastHelper.GetBarricadeTransform(player.Player, out BarricadeData barricadeData, out BarricadeDrop drop); if (doorItem.Transform == null) { doorItem.Transform = RaycastHelper.GetStructureTransform(player.Player, out StructureData structureData); if (doorItem.Transform != null) { ownerId = structureData.owner; name = structureData.structure.asset.itemName; doorItem.IsBarricade = false; doorItem.IsSign = false; } } else { ownerId = barricadeData.owner; name = barricadeData.barricade.asset.itemName; doorItem.IsBarricade = true; doorItem.IsSign = drop.interactable is InteractableSign; } if (doorItem.Transform == null) { MessageHelper.Send(caller, "DoorItemNotLooking"); return; } if (ownerId != player.CSteamID.m_SteamID) { MessageHelper.Send(caller, "DoorItemNotOwner", name); return; } if (pluginInstance.DoorService.IsDoor(doorItem.Transform)) { MessageHelper.Send(caller, "DoorItemAlready", name); return; } Door door = pluginInstance.DoorService.GetDoor(doorId); if (door == null) { MessageHelper.Send(caller, "DoorNotFound", doorId); return; } pluginInstance.DoorService.AddDoorItem(door, doorItem); MessageHelper.Send(caller, "LinkDoorSuccess", name, doorId); }