private void checkpointCmd(BasePlayer player, string command, string[] args) { if (!Checks.HasPermission(player.UserIDString)) { PrintToChat(player, Lang("NoPermission", player.UserIDString)); return; } if (args.Length == 0) { if (Data.Exists(player.userID)) { var data = sData.Players[player.userID]; PrintToChat(player, Lang("Checkpoint_Exists", player.UserIDString, Math.Round(Vector3.Distance(player.transform.position, new Vector3(data.PosX, data.PosY, data.PosZ))))); return; } PrintToChat(player, Lang("Checkpoint_NotExist", player.UserIDString)); return; } switch (args[0].ToLower()) { case "set": if (!Data.Exists(player.userID)) { var bag = FindBag(player); if (bag == null) { return; } if (!Checks.CanUseSleepingBag(player, bag)) { PrintToChat(player, Lang("SleepingBag_NotOwner", player.UserIDString)); return; } Data.Add(player, new PlayerData(bag)); PrintToChat(player, Lang("Checkpoint_Set", player.UserIDString, Math.Round(bag.transform.position.x, 2), Math.Round(bag.transform.position.y, 2), Math.Round(bag.transform.position.z, 2))); } PrintToChat(player, Lang("Checkpoint_AlreadyExists", player.UserIDString, Math.Round(Vector3.Distance(player.transform.position, new Vector3(sData.Players[player.userID].PosX, sData.Players[player.userID].PosY, sData.Players[player.userID].PosZ))))); return; case "remove": if (Data.Exists(player.userID)) { var data = sData.Players[player.userID]; Data.Remove(player.userID); PrintToChat(player, Lang("Checkpoint_Removed", player.UserIDString, Math.Round(data.PosX, 2), Math.Round(data.PosY, 2), Math.Round(data.PosZ, 2), Math.Round(Vector3.Distance(player.transform.position, new Vector3(data.PosX, data.PosY, data.PosZ))))); return; } PrintToChat(player, Lang("Checkpoint_NotFound", player.UserIDString)); return; } }