{"id":167310,"date":"2026-06-09T21:54:02","date_gmt":"2026-06-09T18:54:02","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/"},"modified":"2026-06-09T21:54:02","modified_gmt":"2026-06-09T18:54:02","slug":"vnc","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/","title":{"rendered":"Version Numbering Converter"},"content":{"rendered":"<p># VNC (Version Numbering Converter)<\/p>\n<p>Version Numbering Converter (VNC) is a Java library for working with Minecraft versions across both numbering families:<\/p>\n<p>&#8211; Classic Java-style versions such as `1.20.6` and `1.21.11`<br \/>\n&#8211; Year-based drop versions such as `24.1`, `25.4`, and `26.1.1`<\/p>\n<p>It covers two use cases:<\/p>\n<p>&#8211; Pure version modeling and conversion through `MinecraftVersion`, `VersionScheme`, and `MappingTable`<br \/>\n&#8211; Bukkit\/Paper runtime detection through `VNC`, including server constants, player version resolution, protocol lookup, and version comparisons<\/p>\n<p>## Highlights<\/p>\n<p>&#8211; Exact historic mappings from `1.0.0` through `1.21.11`<br \/>\n&#8211; Drop support for current lines such as `25.4`, `26.1`, and `26.1.1`<br \/>\n&#8211; Protocol lookup for exact releases and published snapshots<br \/>\n&#8211; A runtime bridge for Bukkit\/Paper with legacy-compatible constants like `SERVER_VERSION`<br \/>\n&#8211; String-based comparisons that correctly handle patch-sensitive boundaries like `1.20.5`<\/p>\n<p>## Core API<\/p>\n<p>### 1. Parse and inspect versions<\/p>\n<p>&#8220;`java<br \/>\nMinecraftVersion classic = MinecraftVersion.parse(&#8220;1.21.11&#8221;);<br \/>\nMinecraftVersion drop = MinecraftVersion.parse(&#8220;26.1&#8221;);<\/p>\n<p>classic.isClassic();          \/\/ true<br \/>\nclassic.getVersion();         \/\/ &#8220;1.21.11&#8221;<br \/>\nclassic.getProtocol();        \/\/ 774<br \/>\nclassic.supportsHex();        \/\/ true<\/p>\n<p>drop.isClassic();             \/\/ false<br \/>\ndrop.getVersion();            \/\/ &#8220;26.1&#8221;<br \/>\ndrop.getProtocol();           \/\/ 775<br \/>\n&#8220;`<\/p>\n<p>### 2. Convert between numbering schemes<\/p>\n<p>&#8220;`java<br \/>\nString dropName = VersionScheme.MOJANG.toDrop(&#8220;1.20.3&#8221;);      \/\/ &#8220;23.2&#8221;<br \/>\nString classicName = VersionScheme.MOJANG.toClassic(&#8220;25.2.2&#8221;); \/\/ &#8220;1.21.8&#8221;<\/p>\n<p>String customClassic = VersionScheme.CROA_CUSTOM.toClassic(&#8220;25.4&#8221;); \/\/ &#8220;1.22&#8221;<br \/>\nString customDrop = VersionScheme.CROA_CUSTOM.toDrop(&#8220;1.22.1&#8221;);     \/\/ &#8220;25.4.1&#8221;<br \/>\n&#8220;`<\/p>\n<p>### 3. Create your own mapping scheme<\/p>\n<p>&#8220;`java<br \/>\nMappingTable table = new MappingTable()<br \/>\n        .registerLine(30, 1, &#8220;1.50&#8221;, &#8220;1.50.1&#8221;)<br \/>\n        .registerMapping(&#8220;1.51&#8221;, &#8220;30.2&#8221;);<\/p>\n<p>VersionScheme scheme = VersionScheme.mapped(table);<\/p>\n<p>scheme.toDrop(&#8220;1.50.1&#8221;);   \/\/ &#8220;30.1.1&#8221;<br \/>\nscheme.toClassic(&#8220;30.2&#8221;);  \/\/ &#8220;1.51&#8221;<br \/>\n&#8220;`<\/p>\n<p>### 4. Resolve protocols<\/p>\n<p>&#8220;`java<br \/>\nInteger protocol = MinecraftVersion.protocolForIdentifier(&#8220;1.20.6&#8221;);      \/\/ 766<br \/>\nInteger snapshot = MinecraftVersion.protocolForIdentifier(&#8220;26.2-snapshot-3&#8221;);<\/p>\n<p>MinecraftVersion newest = MinecraftVersion.fromProtocol(754);              \/\/ 1.16.5<br \/>\nList<MinecraftVersion> all = MinecraftVersion.versionsForProtocol(767);    \/\/ 1.21, 1.21.1<br \/>\n&#8220;`<\/p>\n<p>## Bukkit \/ Paper runtime API<\/p>\n<p>`VNC` exposes a runtime snapshot of the current server:<\/p>\n<p>&#8220;`java<br \/>\nMinecraftVersion server = VNC.SERVER_MINECRAFT_VERSION;<br \/>\nString classic = VNC.SERVER_CLASSIC_VERSION;<br \/>\nString drop = VNC.SERVER_DROP_VERSION;<br \/>\nint protocol = VNC.SERVER_PROTOCOL;<br \/>\ndouble legacy = VNC.SERVER_VERSION;<\/p>\n<p>boolean modernRegistry = VNC.isAtLeast(&#8220;1.20.5&#8221;);<br \/>\nboolean legacyCommands = VNC.isBefore(&#8220;1.13&#8221;);<br \/>\nboolean inRange = VNC.isBetween(&#8220;1.19&#8221;, &#8220;1.21.11&#8221;);<br \/>\n&#8220;`<\/p>\n<p>Player version resolution uses ViaVersion when present and falls back to the server version otherwise:<\/p>\n<p>&#8220;`java<br \/>\nMinecraftVersion playerVersion = VNC.player(player);<\/p>\n<p>if (playerVersion.supportsHex()) {<br \/>\n    \/\/ Safe to send RGB formatting to this player<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>## Why use the string helpers?<\/p>\n<p>`SERVER_VERSION` is still available for compatibility with older plugins, but patch-sensitive checks should prefer:<\/p>\n<p>&#8220;`java<br \/>\nVNC.isAtLeast(&#8220;1.20.5&#8221;);<br \/>\nVNC.isBefore(&#8220;1.21.9&#8221;);<br \/>\nVNC.compare(VNC.SERVER_MINECRAFT_VERSION, &#8220;26.1&#8221;);<br \/>\n&#8220;`<\/p>\n<p>That avoids the common limitations of comparing versions only as `double`.<\/p>\n<p>## Requirements<\/p>\n<p>&#8211; Java 8+<br \/>\n&#8211; For the Bukkit runtime helpers: a Bukkit\/Paper-compatible runtime on the classpath<br \/>\n&#8211; Optional: ViaVersion, if you want `VNC.player(&#8230;)` to resolve the effective client version instead of the server version<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Do you hate the new Apple-like version numbering system? Same! Do you like it? Don&#8217;t care! Do you care about the version numbering and how to convert old versions to its new version or viceversa? This project is for you!<\/p>\n","protected":false},"featured_media":167311,"template":"","meta":{"_minecraft_slug":"vnc","_minecraft_project_id":"uxOkzaAO","_minecraft_author":"CroaBeast","_minecraft_license":"GPL-3.0-or-later","_minecraft_downloads":173,"_minecraft_follows":0,"_minecraft_client_side":"optional","_minecraft_server_side":"optional","_minecraft_storage_type":"zip","_minecraft_archive_name":"vnc.zip","_minecraft_size_bytes":132760,"_minecraft_version_count":3,"_minecraft_updated_at":"2026-05-16T12:26:14.926180Z","_minecraft_date_created":"2026-04-23T19:30:50.337708Z","_minecraft_date_modified":"2026-04-23T02:15:33.436609Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/vnc","_minecraft_icon_attachment_id":167311,"_minecraft_imported_at":"2026-06-09T18:54:02+00:00","_minecraft_import_hash":"e3b8c64ef72253b939ad3b990b970bbe","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,894,97,125,104,873,1016,126,158,1008,90,988,127,128,98,129,1005,123,92,985,992],"mod_loader":[130,895,99,131,106,1017,160,1010,990,132,133,100,134,1006,986,993],"minecraft_version":[850,851,339,340,341,357,359,360,379,382,385,438,446,449,110,111,112,113,114,115,116,117,118,119,120,46,47,48,49,50,51,52,53,54,55,56,57,58,845,846,847,848,849,59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,852,853,854,855,856,857,858,859,166,10,11,12,21,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,860,861,862,863,864,83,167,163],"class_list":["post-167310","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-bungeecord","mod_category-fabric","mod_category-folia","mod_category-forge","mod_category-library","mod_category-liteloader","mod_category-management","mod_category-neoforge","mod_category-nilloader","mod_category-optimization","mod_category-ornithe","mod_category-paper","mod_category-purpur","mod_category-quilt","mod_category-spigot","mod_category-sponge","mod_category-technology","mod_category-utility","mod_category-velocity","mod_category-waterfall","mod_loader-bukkit","mod_loader-bungeecord","mod_loader-fabric","mod_loader-folia","mod_loader-forge","mod_loader-liteloader","mod_loader-neoforge","mod_loader-nilloader","mod_loader-ornithe","mod_loader-paper","mod_loader-purpur","mod_loader-quilt","mod_loader-spigot","mod_loader-sponge","mod_loader-velocity","mod_loader-waterfall","minecraft_version-1-0","minecraft_version-1-1","minecraft_version-1-10","minecraft_version-1-10-1","minecraft_version-1-10-2","minecraft_version-1-11","minecraft_version-1-11-1","minecraft_version-1-11-2","minecraft_version-1-12","minecraft_version-1-12-1","minecraft_version-1-12-2","minecraft_version-1-13","minecraft_version-1-13-1","minecraft_version-1-13-2","minecraft_version-1-14","minecraft_version-1-14-1","minecraft_version-1-14-2","minecraft_version-1-14-3","minecraft_version-1-14-4","minecraft_version-1-15","minecraft_version-1-15-1","minecraft_version-1-15-2","minecraft_version-1-16","minecraft_version-1-16-1","minecraft_version-1-16-2","minecraft_version-1-16-3","minecraft_version-1-16-4","minecraft_version-1-16-5","minecraft_version-1-17","minecraft_version-1-17-1","minecraft_version-1-18","minecraft_version-1-18-1","minecraft_version-1-18-2","minecraft_version-1-19","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3","minecraft_version-1-19-4","minecraft_version-1-2-1","minecraft_version-1-2-2","minecraft_version-1-2-3","minecraft_version-1-2-4","minecraft_version-1-2-5","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-1-3-1","minecraft_version-1-3-2","minecraft_version-1-4-2","minecraft_version-1-4-4","minecraft_version-1-4-5","minecraft_version-1-4-6","minecraft_version-1-4-7","minecraft_version-1-5-1","minecraft_version-1-5-2","minecraft_version-1-6-1","minecraft_version-1-6-2","minecraft_version-1-6-4","minecraft_version-1-7-10","minecraft_version-1-7-2","minecraft_version-1-7-3","minecraft_version-1-7-4","minecraft_version-1-7-5","minecraft_version-1-7-6","minecraft_version-1-7-7","minecraft_version-1-7-8","minecraft_version-1-7-9","minecraft_version-1-8","minecraft_version-1-8-1","minecraft_version-1-8-2","minecraft_version-1-8-3","minecraft_version-1-8-4","minecraft_version-1-8-5","minecraft_version-1-8-6","minecraft_version-1-8-7","minecraft_version-1-8-8","minecraft_version-1-8-9","minecraft_version-1-9","minecraft_version-1-9-1","minecraft_version-1-9-2","minecraft_version-1-9-3","minecraft_version-1-9-4","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Version Numbering Converter - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Version Numbering Converter - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Do you hate the new Apple-like version numbering system? Same! Do you like it? Don&#039;t care! Do you care about the version numbering and how to convert old versions to its new version or viceversa? This project is for you!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vnc\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vnc\\\/\",\"name\":\"Version Numbering Converter - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vnc\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vnc\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vnc-icon-438faeb060f9929a5f0b5b852424b312d874e1ac_96.webp\",\"datePublished\":\"2026-06-09T18:54:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vnc\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vnc\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vnc\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vnc-icon-438faeb060f9929a5f0b5b852424b312d874e1ac_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vnc-icon-438faeb060f9929a5f0b5b852424b312d874e1ac_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/vnc\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Version Numbering Converter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Version Numbering Converter - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/","og_locale":"en_US","og_type":"article","og_title":"Version Numbering Converter - Minecraft","og_description":"Do you hate the new Apple-like version numbering system? Same! Do you like it? Don't care! Do you care about the version numbering and how to convert old versions to its new version or viceversa? This project is for you!","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/","name":"Version Numbering Converter - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/vnc-icon-438faeb060f9929a5f0b5b852424b312d874e1ac_96.webp","datePublished":"2026-06-09T18:54:02+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/vnc\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/vnc-icon-438faeb060f9929a5f0b5b852424b312d874e1ac_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/vnc-icon-438faeb060f9929a5f0b5b852424b312d874e1ac_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/vnc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"Version Numbering Converter"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/167310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/167311"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=167310"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=167310"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=167310"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=167310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}