diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 411b321cc..1e53e949d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -4,7 +4,7 @@ jobs:
   build:
     strategy:
       matrix:
-        java: [16-jdk, 17-jdk]
+        java: [17-jdk]
     runs-on: ubuntu-20.04
     container:
       image: eclipse-temurin:${{ matrix.java }}
diff --git a/build.gradle b/build.gradle
index 20d4cdcfb..84be002ac 100644
--- a/build.gradle
+++ b/build.gradle
@@ -76,7 +76,7 @@ allprojects {
 	apply plugin: "org.cadixdev.licenser"
 
 	tasks.withType(JavaCompile).configureEach {
-		it.options.release = 16
+		it.options.release = 17
 	}
 
 	group = "net.fabricmc.fabric-api"
@@ -159,7 +159,7 @@ apply from: "gradle/module-versioning.gradle"
 
 javadoc {
 	options {
-		source = "16"
+		source = "17"
 		encoding = "UTF-8"
 		charSet = "UTF-8"
 		memberLevel = JavadocMemberLevel.PACKAGE
diff --git a/fabric-api-lookup-api-v1/src/main/resources/fabric-api-lookup-api-v1.mixins.json b/fabric-api-lookup-api-v1/src/main/resources/fabric-api-lookup-api-v1.mixins.json
index a0af3ad08..327b248b1 100644
--- a/fabric-api-lookup-api-v1/src/main/resources/fabric-api-lookup-api-v1.mixins.json
+++ b/fabric-api-lookup-api-v1/src/main/resources/fabric-api-lookup-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.lookup",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "BlockEntityTypeAccessor",
     "ServerWorldMixin"
diff --git a/fabric-biome-api-v1/src/main/resources/fabric-biome-api-v1.mixins.json b/fabric-biome-api-v1/src/main/resources/fabric-biome-api-v1.mixins.json
index 145ad47a5..3e77713e0 100644
--- a/fabric-biome-api-v1/src/main/resources/fabric-biome-api-v1.mixins.json
+++ b/fabric-biome-api-v1/src/main/resources/fabric-biome-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.biome",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "modification.BiomeAccessor",
     "modification.BiomeEffectsAccessor",
diff --git a/fabric-biome-api-v1/src/testmod/resources/fabric-biome-testmod-api-v1.mixins.json b/fabric-biome-api-v1/src/testmod/resources/fabric-biome-testmod-api-v1.mixins.json
index e19f0c2ab..c78ed572a 100644
--- a/fabric-biome-api-v1/src/testmod/resources/fabric-biome-testmod-api-v1.mixins.json
+++ b/fabric-biome-api-v1/src/testmod/resources/fabric-biome-testmod-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.test.biome.mixin",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "DecoratorsAccessor"
   ],
diff --git a/fabric-blockrenderlayer-v1/src/main/resources/fabric-blockrenderlayer-v1.mixins.json b/fabric-blockrenderlayer-v1/src/main/resources/fabric-blockrenderlayer-v1.mixins.json
index dcea643b7..c7f87eac8 100644
--- a/fabric-blockrenderlayer-v1/src/main/resources/fabric-blockrenderlayer-v1.mixins.json
+++ b/fabric-blockrenderlayer-v1/src/main/resources/fabric-blockrenderlayer-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.blockrenderlayer",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "client": [
     "MixinBlockRenderLayer"
   ],
diff --git a/fabric-command-api-v1/src/main/resources/fabric-command-api-v1.mixins.json b/fabric-command-api-v1/src/main/resources/fabric-command-api-v1.mixins.json
index d6d19deb2..8e8f8681b 100644
--- a/fabric-command-api-v1/src/main/resources/fabric-command-api-v1.mixins.json
+++ b/fabric-command-api-v1/src/main/resources/fabric-command-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.command",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "CommandManagerMixin",
     "HelpCommandAccessor"
diff --git a/fabric-containers-v0/src/main/resources/fabric-containers-v0.accurate.mixins.json b/fabric-containers-v0/src/main/resources/fabric-containers-v0.accurate.mixins.json
index 2975fb31a..aa7919f55 100644
--- a/fabric-containers-v0/src/main/resources/fabric-containers-v0.accurate.mixins.json
+++ b/fabric-containers-v0/src/main/resources/fabric-containers-v0.accurate.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": false,
   "package": "net.fabricmc.fabric.mixin.container",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "MixinServerPlayerEntity"
   ],
diff --git a/fabric-containers-v0/src/main/resources/fabric-containers-v0.mixins.json b/fabric-containers-v0/src/main/resources/fabric-containers-v0.mixins.json
index 8fa0d48ca..5786e355b 100644
--- a/fabric-containers-v0/src/main/resources/fabric-containers-v0.mixins.json
+++ b/fabric-containers-v0/src/main/resources/fabric-containers-v0.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": false,
   "package": "net.fabricmc.fabric.mixin.container",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "ServerPlayerEntityAccessor"
   ],
diff --git a/fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json b/fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json
index f1a87ae74..3ad6bcbd6 100644
--- a/fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json
+++ b/fabric-content-registries-v0/src/main/resources/fabric-content-registries-v0.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.content.registry",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "AxeItemAccessor",
     "HoeItemAccessor",
diff --git a/fabric-crash-report-info-v1/src/main/resources/fabric-crash-report-info-v1.mixins.json b/fabric-crash-report-info-v1/src/main/resources/fabric-crash-report-info-v1.mixins.json
index 49e1ccbd6..c49ff136e 100644
--- a/fabric-crash-report-info-v1/src/main/resources/fabric-crash-report-info-v1.mixins.json
+++ b/fabric-crash-report-info-v1/src/main/resources/fabric-crash-report-info-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.crash.report.info",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "MixinCrashReport"
   ],
diff --git a/fabric-dimensions-v1/src/main/resources/fabric-dimensions-v1.mixins.json b/fabric-dimensions-v1/src/main/resources/fabric-dimensions-v1.mixins.json
index ebfb7e691..cc61080d0 100644
--- a/fabric-dimensions-v1/src/main/resources/fabric-dimensions-v1.mixins.json
+++ b/fabric-dimensions-v1/src/main/resources/fabric-dimensions-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.dimension",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "EntityMixin",
     "ServerBugfixMixin"
diff --git a/fabric-entity-events-v1/src/main/resources/fabric-entity-events-v1.mixins.json b/fabric-entity-events-v1/src/main/resources/fabric-entity-events-v1.mixins.json
index 83a886ca6..65c387edd 100644
--- a/fabric-entity-events-v1/src/main/resources/fabric-entity-events-v1.mixins.json
+++ b/fabric-entity-events-v1/src/main/resources/fabric-entity-events-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.entity.event",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "BedBlockMixin",
     "EntityMixin",
diff --git a/fabric-events-interaction-v0/src/main/resources/fabric-events-interaction-v0.mixins.json b/fabric-events-interaction-v0/src/main/resources/fabric-events-interaction-v0.mixins.json
index 44d5b926e..a75183157 100644
--- a/fabric-events-interaction-v0/src/main/resources/fabric-events-interaction-v0.mixins.json
+++ b/fabric-events-interaction-v0/src/main/resources/fabric-events-interaction-v0.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.event.interaction",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "MixinServerPlayerEntity",
     "MixinServerPlayerInteractionManager",
diff --git a/fabric-game-rule-api-v1/src/main/resources/fabric-game-rule-api-v1.mixins.json b/fabric-game-rule-api-v1/src/main/resources/fabric-game-rule-api-v1.mixins.json
index 933aa6636..aae7293e3 100644
--- a/fabric-game-rule-api-v1/src/main/resources/fabric-game-rule-api-v1.mixins.json
+++ b/fabric-game-rule-api-v1/src/main/resources/fabric-game-rule-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.gamerule",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "BooleanRuleAccessor",
     "GameRuleCommandAccessor",
diff --git a/fabric-gametest-api-v1/src/main/resources/fabric-gametest-api-v1.mixins.json b/fabric-gametest-api-v1/src/main/resources/fabric-gametest-api-v1.mixins.json
index 1ae56b7a0..0d2843ce1 100644
--- a/fabric-gametest-api-v1/src/main/resources/fabric-gametest-api-v1.mixins.json
+++ b/fabric-gametest-api-v1/src/main/resources/fabric-gametest-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.gametest",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "CommandManagerMixin",
     "MinecraftServerMixin",
diff --git a/fabric-item-api-v1/src/main/resources/fabric-item-api-v1.mixins.json b/fabric-item-api-v1/src/main/resources/fabric-item-api-v1.mixins.json
index 1b5ef900a..a92a949dd 100644
--- a/fabric-item-api-v1/src/main/resources/fabric-item-api-v1.mixins.json
+++ b/fabric-item-api-v1/src/main/resources/fabric-item-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.item",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "ItemStackMixin",
     "ItemMixin",
diff --git a/fabric-item-groups-v0/src/main/resources/fabric-item-groups-v0.mixins.json b/fabric-item-groups-v0/src/main/resources/fabric-item-groups-v0.mixins.json
index b63a35dba..968240e6b 100644
--- a/fabric-item-groups-v0/src/main/resources/fabric-item-groups-v0.mixins.json
+++ b/fabric-item-groups-v0/src/main/resources/fabric-item-groups-v0.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.item.group",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "MixinItemGroup"
   ],
diff --git a/fabric-key-binding-api-v1/src/main/resources/fabric-key-binding-api-v1.mixins.json b/fabric-key-binding-api-v1/src/main/resources/fabric-key-binding-api-v1.mixins.json
index 06fda9e81..6d3a7483b 100644
--- a/fabric-key-binding-api-v1/src/main/resources/fabric-key-binding-api-v1.mixins.json
+++ b/fabric-key-binding-api-v1/src/main/resources/fabric-key-binding-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.client.keybinding",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "client": [
     "KeyBindingAccessor",
     "KeyCodeAccessor",
diff --git a/fabric-lifecycle-events-v1/src/main/resources/fabric-lifecycle-events-v1.mixins.json b/fabric-lifecycle-events-v1/src/main/resources/fabric-lifecycle-events-v1.mixins.json
index e1c9062a2..782ccd8cf 100644
--- a/fabric-lifecycle-events-v1/src/main/resources/fabric-lifecycle-events-v1.mixins.json
+++ b/fabric-lifecycle-events-v1/src/main/resources/fabric-lifecycle-events-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.event.lifecycle",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "MinecraftServerMixin",
     "ServerWorldEntityLoaderMixin",
diff --git a/fabric-loot-tables-v1/src/main/resources/fabric-loot-tables-v1.mixins.json b/fabric-loot-tables-v1/src/main/resources/fabric-loot-tables-v1.mixins.json
index 064f4c5bd..bdcfc9e1d 100644
--- a/fabric-loot-tables-v1/src/main/resources/fabric-loot-tables-v1.mixins.json
+++ b/fabric-loot-tables-v1/src/main/resources/fabric-loot-tables-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.loot.table",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "LootPoolBuilderHooks",
     "LootPoolEntryTypesAccessor",
diff --git a/fabric-mining-level-api-v1/src/main/resources/fabric-mining-level-api-v1.mixins.json b/fabric-mining-level-api-v1/src/main/resources/fabric-mining-level-api-v1.mixins.json
index 1d37af00d..10471f60b 100644
--- a/fabric-mining-level-api-v1/src/main/resources/fabric-mining-level-api-v1.mixins.json
+++ b/fabric-mining-level-api-v1/src/main/resources/fabric-mining-level-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.mininglevel",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "MiningToolItemMixin",
     "ShearsItemMixin",
diff --git a/fabric-models-v0/src/main/resources/fabric-models-v0.mixins.json b/fabric-models-v0/src/main/resources/fabric-models-v0.mixins.json
index cb27b397d..92f11a743 100644
--- a/fabric-models-v0/src/main/resources/fabric-models-v0.mixins.json
+++ b/fabric-models-v0/src/main/resources/fabric-models-v0.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.client.model",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "client": [
     "MixinBakedModelManager",
     "MixinModelLoader"
diff --git a/fabric-networking-api-v1/src/main/resources/fabric-networking-api-v1.mixins.json b/fabric-networking-api-v1/src/main/resources/fabric-networking-api-v1.mixins.json
index cf4f7bb9c..d8d1d4309 100644
--- a/fabric-networking-api-v1/src/main/resources/fabric-networking-api-v1.mixins.json
+++ b/fabric-networking-api-v1/src/main/resources/fabric-networking-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.networking",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "ClientConnectionMixin",
     "EntityTrackerEntryMixin",
diff --git a/fabric-object-builder-api-v1/src/main/resources/fabric-object-builder-v1.mixins.json b/fabric-object-builder-api-v1/src/main/resources/fabric-object-builder-v1.mixins.json
index 265a90d10..6ded03b95 100644
--- a/fabric-object-builder-api-v1/src/main/resources/fabric-object-builder-v1.mixins.json
+++ b/fabric-object-builder-api-v1/src/main/resources/fabric-object-builder-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.object.builder",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "AbstractBlockAccessor",
     "AbstractBlockSettingsAccessor",
diff --git a/fabric-object-builders-v0/src/main/resources/fabric-object-builders-v0.mixins.json b/fabric-object-builders-v0/src/main/resources/fabric-object-builders-v0.mixins.json
index 2bf18ff36..a8a1a3d46 100644
--- a/fabric-object-builders-v0/src/main/resources/fabric-object-builders-v0.mixins.json
+++ b/fabric-object-builders-v0/src/main/resources/fabric-object-builders-v0.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.object.builder",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "OldMixinBlock",
     "OldMixinItem"
diff --git a/fabric-particles-v1/src/main/resources/fabric-particles-v1.mixins.json b/fabric-particles-v1/src/main/resources/fabric-particles-v1.mixins.json
index f20310894..47f4ff8da 100644
--- a/fabric-particles-v1/src/main/resources/fabric-particles-v1.mixins.json
+++ b/fabric-particles-v1/src/main/resources/fabric-particles-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.client.particle",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "client": [
     "MixinParticleManager",
     "ParticleManagerAccessor",
diff --git a/fabric-registry-sync-v0/src/main/resources/fabric-registry-sync-v0.mixins.json b/fabric-registry-sync-v0/src/main/resources/fabric-registry-sync-v0.mixins.json
index efc822995..718726c9a 100644
--- a/fabric-registry-sync-v0/src/main/resources/fabric-registry-sync-v0.mixins.json
+++ b/fabric-registry-sync-v0/src/main/resources/fabric-registry-sync-v0.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.registry.sync",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "AccessorLevelStorageSession",
     "AccessorRegistry",
diff --git a/fabric-renderer-api-v1/src/main/resources/fabric-renderer-api-v1.debughud.mixins.json b/fabric-renderer-api-v1/src/main/resources/fabric-renderer-api-v1.debughud.mixins.json
index f46a2c6bd..db271ee79 100644
--- a/fabric-renderer-api-v1/src/main/resources/fabric-renderer-api-v1.debughud.mixins.json
+++ b/fabric-renderer-api-v1/src/main/resources/fabric-renderer-api-v1.debughud.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": false,
   "package": "net.fabricmc.fabric.mixin.renderer.client.debughud",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "client": [
     "MixinDebugHud"
   ],
diff --git a/fabric-renderer-api-v1/src/main/resources/fabric-renderer-api-v1.mixins.json b/fabric-renderer-api-v1/src/main/resources/fabric-renderer-api-v1.mixins.json
index 08dc6b492..1260ab4f4 100644
--- a/fabric-renderer-api-v1/src/main/resources/fabric-renderer-api-v1.mixins.json
+++ b/fabric-renderer-api-v1/src/main/resources/fabric-renderer-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.renderer",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "client": [
     "client.MixinBakedModel",
     "client.MixinMultipartBakedModel",
diff --git a/fabric-renderer-api-v1/src/testmod/resources/fabric-renderer-api-v1-testmod.mixins.json b/fabric-renderer-api-v1/src/testmod/resources/fabric-renderer-api-v1-testmod.mixins.json
index 660d647f8..a6a66a69f 100644
--- a/fabric-renderer-api-v1/src/testmod/resources/fabric-renderer-api-v1-testmod.mixins.json
+++ b/fabric-renderer-api-v1/src/testmod/resources/fabric-renderer-api-v1-testmod.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.test.renderer.mixin",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "WorldMixin"
   ],
diff --git a/fabric-renderer-indigo/src/main/resources/fabric-renderer-indigo.mixins.json b/fabric-renderer-indigo/src/main/resources/fabric-renderer-indigo.mixins.json
index bf70fcc80..70157313c 100755
--- a/fabric-renderer-indigo/src/main/resources/fabric-renderer-indigo.mixins.json
+++ b/fabric-renderer-indigo/src/main/resources/fabric-renderer-indigo.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.client.indigo.renderer",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "plugin": "net.fabricmc.fabric.impl.client.indigo.IndigoMixinConfigPlugin",
   "mixins": [
   ],
diff --git a/fabric-rendering-data-attachment-v1/src/main/resources/fabric-rendering-data-attachment-v1.mixins.json b/fabric-rendering-data-attachment-v1/src/main/resources/fabric-rendering-data-attachment-v1.mixins.json
index e0c26e7a2..2be07ff1b 100644
--- a/fabric-rendering-data-attachment-v1/src/main/resources/fabric-rendering-data-attachment-v1.mixins.json
+++ b/fabric-rendering-data-attachment-v1/src/main/resources/fabric-rendering-data-attachment-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.rendering.data.attachment",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "MixinBlockEntity",
     "MixinViewableWorld"
diff --git a/fabric-rendering-fluids-v1/src/main/resources/fabric-rendering-fluids-v1.mixins.json b/fabric-rendering-fluids-v1/src/main/resources/fabric-rendering-fluids-v1.mixins.json
index e13f7c57c..d82920972 100644
--- a/fabric-rendering-fluids-v1/src/main/resources/fabric-rendering-fluids-v1.mixins.json
+++ b/fabric-rendering-fluids-v1/src/main/resources/fabric-rendering-fluids-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.client.rendering.fluid",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "client": [
     "MixinFluidRenderer"
   ],
diff --git a/fabric-rendering-v1/src/main/resources/fabric-rendering-v1.mixins.json b/fabric-rendering-v1/src/main/resources/fabric-rendering-v1.mixins.json
index c5597e8ca..6ab8ec2db 100644
--- a/fabric-rendering-v1/src/main/resources/fabric-rendering-v1.mixins.json
+++ b/fabric-rendering-v1/src/main/resources/fabric-rendering-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.client.rendering",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "client": [
     "MixinArmorFeatureRenderer",
     "MixinBlockColorMap",
diff --git a/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json b/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
index e6dde5ac7..8b25abee9 100644
--- a/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
+++ b/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.resource.loader",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "FileResourcePackProviderAccessor",
     "DefaultResourcePackMixin",
diff --git a/fabric-screen-api-v1/src/main/resources/fabric-screen-api-v1.mixins.json b/fabric-screen-api-v1/src/main/resources/fabric-screen-api-v1.mixins.json
index d139a47b5..d6170266a 100644
--- a/fabric-screen-api-v1/src/main/resources/fabric-screen-api-v1.mixins.json
+++ b/fabric-screen-api-v1/src/main/resources/fabric-screen-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.screen",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "client": [
     "GameRendererMixin",
     "MinecraftClientMixin",
diff --git a/fabric-screen-handler-api-v1/src/main/resources/fabric-screen-handler-api-v1.mixins.json b/fabric-screen-handler-api-v1/src/main/resources/fabric-screen-handler-api-v1.mixins.json
index be44ab191..08fbc28f1 100644
--- a/fabric-screen-handler-api-v1/src/main/resources/fabric-screen-handler-api-v1.mixins.json
+++ b/fabric-screen-handler-api-v1/src/main/resources/fabric-screen-handler-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.screenhandler",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "ServerPlayerEntityMixin"
   ],
diff --git a/fabric-structure-api-v1/src/main/resources/fabric-structure-api-v1.mixins.json b/fabric-structure-api-v1/src/main/resources/fabric-structure-api-v1.mixins.json
index 7d78107fc..c015858a5 100644
--- a/fabric-structure-api-v1/src/main/resources/fabric-structure-api-v1.mixins.json
+++ b/fabric-structure-api-v1/src/main/resources/fabric-structure-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.structure",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "ChunkSerializerMixin",
     "FlatChunkGeneratorConfigMixin",
diff --git a/fabric-structure-api-v1/src/testmod/resources/fabric-structure-api-v1-testmod.mixins.json b/fabric-structure-api-v1/src/testmod/resources/fabric-structure-api-v1-testmod.mixins.json
index 53809ab0b..cc53884dd 100644
--- a/fabric-structure-api-v1/src/testmod/resources/fabric-structure-api-v1-testmod.mixins.json
+++ b/fabric-structure-api-v1/src/testmod/resources/fabric-structure-api-v1-testmod.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.test.structure.mixin",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "ChunkSerializerMixin",
     "MixinConfiguredStructureFeatures"
diff --git a/fabric-tag-extensions-v0/src/main/resources/fabric-tag-extensions-v0.mixins.json b/fabric-tag-extensions-v0/src/main/resources/fabric-tag-extensions-v0.mixins.json
index 4822ac834..bf83c5278 100644
--- a/fabric-tag-extensions-v0/src/main/resources/fabric-tag-extensions-v0.mixins.json
+++ b/fabric-tag-extensions-v0/src/main/resources/fabric-tag-extensions-v0.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.tag.extension",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "DynamicRegistryManagerAccessor",
     "MixinMinecraftServer",
diff --git a/fabric-textures-v0/src/main/resources/fabric-textures-v0.mixins.json b/fabric-textures-v0/src/main/resources/fabric-textures-v0.mixins.json
index c6b779ef7..715610f87 100644
--- a/fabric-textures-v0/src/main/resources/fabric-textures-v0.mixins.json
+++ b/fabric-textures-v0/src/main/resources/fabric-textures-v0.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.client.texture",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "client": [
     "MixinSpriteAtlasTexture"
   ],
diff --git a/fabric-tool-attribute-api-v1/src/main/resources/fabric-tool-attribute-api-v1.mixins.json b/fabric-tool-attribute-api-v1/src/main/resources/fabric-tool-attribute-api-v1.mixins.json
index 12540e3ce..3ff8c7512 100644
--- a/fabric-tool-attribute-api-v1/src/main/resources/fabric-tool-attribute-api-v1.mixins.json
+++ b/fabric-tool-attribute-api-v1/src/main/resources/fabric-tool-attribute-api-v1.mixins.json
@@ -1,7 +1,7 @@
 {
   "required": true,
   "package": "net.fabricmc.fabric.mixin.tool.attribute",
-  "compatibilityLevel": "JAVA_16",
+  "compatibilityLevel": "JAVA_17",
   "mixins": [
     "BambooBlockMixin",
     "LivingEntityMixin",
diff --git a/gradle.properties b/gradle.properties
index f8e4831db..fc3d948eb 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,8 +1,8 @@
 org.gradle.jvmargs=-Xmx2560M
 
 version=0.42.2
-minecraft_version=1.18-pre1
-yarn_version=+build.12
+minecraft_version=1.18-pre2
+yarn_version=+build.1
 loader_version=0.12.5
 
 prerelease=true
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index 3c55356d9..c8917900d 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -17,7 +17,7 @@
   ],
   "depends": {
     "fabricloader": ">=0.11.7",
-    "java": ">=16",
+    "java": ">=17",
     "minecraft": "~1.18-alpha.21.37.a"
   },
   "description": "Core API module providing key hooks and intercompatibility features."