diff --git a/Plugin/pom.xml b/Plugin/pom.xml
index 5ad7dc2a..30b9e750 100644
--- a/Plugin/pom.xml
+++ b/Plugin/pom.xml
@@ -166,6 +166,14 @@
compile
true
+
+ de.corneliusmay
+ SilkSpawners_v2-v1_20_R3
+ v1_20_R3
+ jar
+ compile
+ true
+
de.corneliusmay
SilkSpawners_v2-API
diff --git a/pom.xml b/pom.xml
index a3d863a0..ceea95f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,6 +26,7 @@
v1_19_R3
v1_20_R1
v1_20_R2
+ v1_20_R3
pom
diff --git a/v1_20_R3/pom.xml b/v1_20_R3/pom.xml
new file mode 100644
index 00000000..6ca0c308
--- /dev/null
+++ b/v1_20_R3/pom.xml
@@ -0,0 +1,38 @@
+
+
+
+ SilkSpawners_v2
+ de.corneliusmay
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ SilkSpawners_v2-v1_20_R3
+ v1_20_R3
+
+
+ 17
+ 17
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.20.4-R0.1-SNAPSHOT
+ jar
+ compile
+ true
+
+
+ de.corneliusmay
+ SilkSpawners_v2-API
+ API
+ jar
+ compile
+ true
+
+
+
diff --git a/v1_20_R3/src/main/java/de/corneliusmay/silkspawners/nms/v1_20_R3/NMSHandler.java b/v1_20_R3/src/main/java/de/corneliusmay/silkspawners/nms/v1_20_R3/NMSHandler.java
new file mode 100644
index 00000000..c6a22319
--- /dev/null
+++ b/v1_20_R3/src/main/java/de/corneliusmay/silkspawners/nms/v1_20_R3/NMSHandler.java
@@ -0,0 +1,30 @@
+package de.corneliusmay.silkspawners.nms.v1_20_R3;
+
+import de.corneliusmay.silkspawners.api.NMS;
+import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+
+public class NMSHandler implements NMS {
+
+ @Override
+ public Block getTargetBlock(Player player) {
+ return player.getTargetBlockExact(5);
+ }
+
+ @Override
+ public ItemStack[] getItemsInHand(Player player) {
+ return new ItemStack[]{ player.getInventory().getItemInMainHand(), player.getInventory().getItemInOffHand() };
+ }
+
+ @Override
+ public Material getSpawnerMaterial() {
+ return Material.SPAWNER;
+ }
+
+ @Override
+ public Material getPlaceholderMaterial() {
+ return Material.GRAY_STAINED_GLASS_PANE;
+ }
+}