diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..72e1040497ca5a575ab42c62860d3232e916dbdb
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>fsmpi.gaming.portal-fix</groupId>
+    <artifactId>portal-fix</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  <packaging>jar</packaging>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+    </properties>
+
+    <build>
+        <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
+        <resources>
+            <resource>
+                <directory>${project.basedir}/src/main/resources</directory>
+                <includes>
+                <include>plugin.yml</include>
+                <include>config.yml</include>
+                </includes>
+            </resource>
+        </resources>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spigot-repo</id>
+            <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
+        </repository>
+    </repositories>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.spigotmc</groupId>
+            <artifactId>spigot-api</artifactId>
+            <version>1.20.4-R0.1-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/src/main/java/fsmpi/gaming/portal_fix/EntityPortalEventListener.java b/src/main/java/fsmpi/gaming/portal_fix/EntityPortalEventListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..a51dcdd04883eded4e44a0311a2a73912672fa44
--- /dev/null
+++ b/src/main/java/fsmpi/gaming/portal_fix/EntityPortalEventListener.java
@@ -0,0 +1,33 @@
+package fsmpi.gaming.portal_fix;
+
+import java.util.logging.Logger;
+
+import org.bukkit.Bukkit;
+import org.bukkit.World.Environment;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.Listener;
+import org.bukkit.event.entity.EntityPortalEnterEvent;
+import org.bukkit.event.entity.EntityPortalEvent;
+
+public class EntityPortalEventListener implements Listener {
+    private Logger logger;
+    public EntityPortalEventListener(Logger logger) {
+        this.logger = logger;
+    }
+    @EventHandler(priority = EventPriority.HIGHEST)
+    public void onPortalEnterEvent(EntityPortalEnterEvent e) {
+        if (e.getLocation().getWorld().getName().equals("farm") 
+        && e.getLocation().distance(e.getLocation().getWorld().getSpawnLocation()) < 500) {
+            e.getEntity().teleport(Bukkit.getWorld("main").getSpawnLocation());
+        }
+    }
+
+    @EventHandler(priority = EventPriority.HIGHEST)
+    public void onEntityPortalEvent(EntityPortalEvent event) {
+        if (event.getEntity().getWorld().getEnvironment() == Environment.THE_END && event.getTo().getWorld().getEnvironment() != Environment.THE_END) {
+            event.setTo(event.getTo().getWorld().getSpawnLocation());
+            logger.info("Send Entity " + event.getEntityType() + " to " + event.getTo().getWorld().getName() + " World Spawn");
+        }
+    }
+}
diff --git a/src/main/java/fsmpi/gaming/portal_fix/MyPlugin.java b/src/main/java/fsmpi/gaming/portal_fix/MyPlugin.java
new file mode 100644
index 0000000000000000000000000000000000000000..83253f206796867802550cc719feca8b45b8293e
--- /dev/null
+++ b/src/main/java/fsmpi/gaming/portal_fix/MyPlugin.java
@@ -0,0 +1,26 @@
+package fsmpi.gaming.portal_fix;
+
+import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.plugin.java.JavaPlugin;
+
+public class MyPlugin extends JavaPlugin {
+    @Override
+    public void onEnable() {
+        getServer().getPluginManager().registerEvents(new EntityPortalEventListener(getLogger()), this);
+    }
+
+    @Override
+    public void onDisable() {
+        
+    }
+
+    @Override
+    public FileConfiguration getConfig() {
+        if (super.getConfig().getCurrentPath().equals("")) {
+            super.saveDefaultConfig();
+        }
+        return super.getConfig();
+    }
+
+
+}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9c3243d928a17544236665dbffc2f1517eea4a93
--- /dev/null
+++ b/src/main/resources/plugin.yml
@@ -0,0 +1,5 @@
+name: Portal-Fix
+main: fsmpi.gaming.portal_fix.MyPlugin
+version: ${project.version}
+api-version: 1.20
+commands: