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: