diff --git a/fakeplayer-dist/pom.xml b/fakeplayer-dist/pom.xml
index 0966a66..edeb15f 100644
--- a/fakeplayer-dist/pom.xml
+++ b/fakeplayer-dist/pom.xml
@@ -108,6 +108,12 @@
${revision}
+
+ io.github.hello09x.fakeplayer
+ fakeplayer-v1_21_8
+ ${revision}
+
+
@@ -197,6 +203,11 @@
+
+
+
+
+
diff --git a/fakeplayer-dist/src/main/resources/META-INF/services/io.github.hello09x.fakeplayer.api.spi.NMSBridge b/fakeplayer-dist/src/main/resources/META-INF/services/io.github.hello09x.fakeplayer.api.spi.NMSBridge
index 05ca7c1..305fe1b 100644
--- a/fakeplayer-dist/src/main/resources/META-INF/services/io.github.hello09x.fakeplayer.api.spi.NMSBridge
+++ b/fakeplayer-dist/src/main/resources/META-INF/services/io.github.hello09x.fakeplayer.api.spi.NMSBridge
@@ -11,3 +11,5 @@ io.github.hello09x.fakeplayer.v1_21_4.spi.NMSBridgeImpl
io.github.hello09x.fakeplayer.v1_21_5.spi.NMSBridgeImpl
io.github.hello09x.fakeplayer.v1_21_6.spi.NMSBridgeImpl
io.github.hello09x.fakeplayer.v1_21_7.spi.NMSBridgeImpl
+io.github.hello09x.fakeplayer.v1_21_8.spi.NMSBridgeImpl
+
diff --git a/fakeplayer-v1_21_8/pom.xml b/fakeplayer-v1_21_8/pom.xml
new file mode 100644
index 0000000..c5d7d67
--- /dev/null
+++ b/fakeplayer-v1_21_8/pom.xml
@@ -0,0 +1,106 @@
+
+
+ 4.0.0
+
+ io.github.hello09x.fakeplayer
+ fakeplayer-parent
+ ${revision}
+
+
+ fakeplayer-v1_21_8
+
+
+ 21
+ 21
+ UTF-8
+ 1.21.8-R0.1-SNAPSHOT
+
+
+
+
+ io.papermc.paper
+ paper-api
+ provided
+
+
+
+ io.github.hello09x.fakeplayer
+ fakeplayer-core
+ provided
+
+
+
+ io.github.hello09x.fakeplayer
+ fakeplayer-api
+ provided
+
+
+
+ io.github.hello09x.fakeplayer
+ fakeplayer-v1_21_6
+ ${revision}
+ provided
+
+
+ *
+ *
+
+
+
+
+
+ org.spigotmc
+ spigot
+ ${nms.version}
+ remapped-mojang
+ provided
+
+
+
+
+
+
+
+ net.md-5
+ specialsource-maven-plugin
+ 2.0.3
+
+
+ package
+
+ remap
+
+ remap-obf
+
+ org.spigotmc:minecraft-server:${nms.version}:txt:maps-mojang
+ true
+
+ org.spigotmc:spigot:${nms.version}:jar:remapped-mojang
+
+ true
+ remapped-obf
+
+
+
+ package
+
+ remap
+
+ remap-spigot
+
+
+ ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
+
+ org.spigotmc:minecraft-server:${nms.version}:csrg:maps-spigot
+ org.spigotmc:spigot:${nms.version}:jar:remapped-obf
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fakeplayer-v1_21_8/src/main/java/io/github/hello09x/fakeplayer/v1_21_8/spi/NMSBridgeImpl.java b/fakeplayer-v1_21_8/src/main/java/io/github/hello09x/fakeplayer/v1_21_8/spi/NMSBridgeImpl.java
new file mode 100644
index 0000000..d79e237
--- /dev/null
+++ b/fakeplayer-v1_21_8/src/main/java/io/github/hello09x/fakeplayer/v1_21_8/spi/NMSBridgeImpl.java
@@ -0,0 +1,55 @@
+package io.github.hello09x.fakeplayer.v1_21_8.spi;
+
+import io.github.hello09x.fakeplayer.api.spi.*;
+import io.github.hello09x.fakeplayer.core.Main;
+import io.github.hello09x.fakeplayer.v1_21_6.spi.*;
+import org.bukkit.Bukkit;
+import org.bukkit.Server;
+import org.bukkit.World;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.Player;
+import org.jetbrains.annotations.NotNull;
+
+import java.net.InetAddress;
+import java.util.Set;
+
+public class NMSBridgeImpl implements NMSBridge {
+
+ private final static Set SUPPORTS = Set.of("1.21.8");
+
+ @Override
+ public @NotNull NMSEntity fromEntity(@NotNull Entity entity) {
+ return new NMSEntityImpl(entity);
+ }
+
+ @Override
+ public @NotNull NMSServer fromServer(@NotNull Server server) {
+ return new NMSServerImpl(server);
+ }
+
+ @Override
+ public @NotNull NMSServerLevel fromWorld(@NotNull World world) {
+ return new NMSServerLevelImpl(world);
+ }
+
+ @Override
+ public @NotNull NMSServerPlayer fromPlayer(@NotNull Player player) {
+ return new NMSServerPlayerImpl(player);
+ }
+
+ @Override
+ public @NotNull NMSNetwork createNetwork(@NotNull InetAddress address) {
+ return new NMSNetworkImpl(address);
+ }
+
+ @Override
+ public boolean isSupported() {
+ return SUPPORTS.contains(Bukkit.getMinecraftVersion());
+ }
+
+ @Override
+ public @NotNull ActionTicker createAction(@NotNull Player player, @NotNull ActionType action, @NotNull ActionSetting setting) {
+ return new ActionTickerImpl(Main.getInjector().getInstance(NMSBridge.class), player, action, setting);
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index 6516efd..98a7fe3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,6 +27,7 @@
fakeplayer-v1_21_5
fakeplayer-v1_21_6
fakeplayer-v1_21_7
+ fakeplayer-v1_21_8