LobbyPlugin

OSHs LobbyPlugin
git clone git://git.oshgnacknak.de/LobbyPlugin.git
Log | Files | Refs

commit 077409e2794f83b4a3925c9d780a9796ecccb5c5
Author: Oshgnacknak <osh@oshgnacknak.de>
Date:   Tue, 16 Oct 2018 22:42:31 +0200

Most basic lobby struff and begin of /fly command
Diffstat:
ALobby Plugin/.classpath | 20++++++++++++++++++++
ALobby Plugin/.gitignore | 1+
ALobby Plugin/.project | 23+++++++++++++++++++++++
ALobby Plugin/.settings/org.eclipse.jdt.core.prefs | 13+++++++++++++
ALobby Plugin/.settings/org.eclipse.m2e.core.prefs | 4++++
ALobby Plugin/pom.xml | 38++++++++++++++++++++++++++++++++++++++
ALobby Plugin/src/de/oshgnacknak/lobbyPlugin/LobbyPlugin.java | 32++++++++++++++++++++++++++++++++
ALobby Plugin/src/de/oshgnacknak/lobbyPlugin/Permissions.java | 10++++++++++
ALobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/DamageListener.java | 25+++++++++++++++++++++++++
ALobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/InteractListener.java | 29+++++++++++++++++++++++++++++
ALobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/JoinListener.java | 17+++++++++++++++++
ALobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/QuitListener.java | 12++++++++++++
ALobby Plugin/src/main/resources/plugin.yml | 11+++++++++++
13 files changed, 235 insertions(+), 0 deletions(-)

diff --git a/Lobby Plugin/.classpath b/Lobby Plugin/.classpath @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/classes" path="src"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/Lobby Plugin/.gitignore b/Lobby Plugin/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/Lobby Plugin/.project b/Lobby Plugin/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>Lobby Plugin</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/Lobby Plugin/.settings/org.eclipse.jdt.core.prefs b/Lobby Plugin/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,13 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Lobby Plugin/.settings/org.eclipse.m2e.core.prefs b/Lobby Plugin/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/Lobby Plugin/pom.xml b/Lobby Plugin/pom.xml @@ -0,0 +1,37 @@ +<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>de.oshgnacknak.lobbyPlugin</groupId> + <artifactId>LobbyPlugin</artifactId> + <version>0.0.1-SNAPSHOT</version> + <name>LobbyPlugin</name> + <description>A lobby plugin bungeeCord-driven server networks.</description> + <build> + <sourceDirectory>src</sourceDirectory> + <plugins> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.8.0</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + </plugins> + </build> + <repositories> + <repository> + <id>spigot-repo</id> + <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url> + </repository> + </repositories> + <dependencies> + <dependency> + <groupId>org.bukkit</groupId> + <artifactId>bukkit</artifactId> + <version>1.13-R0.1-SNAPSHOT</version> + <scope>provided</scope> + </dependency> + </dependencies> +</project>+ \ No newline at end of file diff --git a/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/LobbyPlugin.java b/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/LobbyPlugin.java @@ -0,0 +1,32 @@ +package de.oshgnacknak.lobbyPlugin; + +import org.bukkit.Difficulty; +import org.bukkit.GameMode; +import org.bukkit.Server; +import org.bukkit.event.Listener; +import org.bukkit.plugin.java.JavaPlugin; + +import de.oshgnacknak.lobbyPlugin.listeners.DamageListener; +import de.oshgnacknak.lobbyPlugin.listeners.InteractListener; +import de.oshgnacknak.lobbyPlugin.listeners.JoinListener; +import de.oshgnacknak.lobbyPlugin.listeners.QuitListener; + +public class LobbyPlugin extends JavaPlugin { + + + + @Override + public void onEnable() { + Server s = getServer(); + s.setDefaultGameMode(GameMode.ADVENTURE); + s.getWorlds().forEach(w -> w.setDifficulty(Difficulty.PEACEFUL)); + + registerListeners(new DamageListener(), new InteractListener(), new JoinListener(), new QuitListener()); + } + + private void registerListeners(Listener... listeners) { + for (Listener listener : listeners) { + getServer().getPluginManager().registerEvents(listener, this); + } + } +} diff --git a/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/Permissions.java b/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/Permissions.java @@ -0,0 +1,10 @@ +package de.oshgnacknak.lobbyPlugin; + +public class Permissions { + + private static final String PERM_PREFIX = "oshlobby."; + public static final String BUILD = PERM_PREFIX + "build"; + + private Permissions() { + } +} diff --git a/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/DamageListener.java b/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/DamageListener.java @@ -0,0 +1,25 @@ +package de.oshgnacknak.lobbyPlugin.listeners; + +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import org.bukkit.util.Vector; + +public class DamageListener implements Listener { + + @EventHandler + public void onDamager(EntityDamageEvent event) { + Entity entity = event.getEntity(); + if (!(entity instanceof Player)) { + return; + } + event.setCancelled(true); + if (event.getCause().equals(DamageCause.VOID)) { + entity.setVelocity(new Vector()); + entity.teleport(event.getEntity().getWorld().getSpawnLocation()); + } + } +} diff --git a/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/InteractListener.java b/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/InteractListener.java @@ -0,0 +1,29 @@ +package de.oshgnacknak.lobbyPlugin.listeners; + +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockPlaceEvent; + +import de.oshgnacknak.lobbyPlugin.Permissions; + +public class InteractListener implements Listener { + @EventHandler + public void onBreak(BlockBreakEvent event) { + Player player = event.getPlayer(); + if (player.hasPermission(Permissions.BUILD)) { + return; + } + event.setCancelled(true); + } + + @EventHandler + public void onPlace(BlockPlaceEvent event) { + Player player = event.getPlayer(); + if (player.hasPermission(Permissions.BUILD)) { + return; + } + event.setCancelled(true); + } +} diff --git a/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/JoinListener.java b/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/JoinListener.java @@ -0,0 +1,17 @@ +package de.oshgnacknak.lobbyPlugin.listeners; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; + +public class JoinListener implements Listener { + @EventHandler + public void onJoin(PlayerJoinEvent event) { + Player player = event.getPlayer(); + player.setGameMode(Bukkit.getDefaultGameMode()); + event.setJoinMessage(""); + } + +} diff --git a/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/QuitListener.java b/Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/QuitListener.java @@ -0,0 +1,12 @@ +package de.oshgnacknak.lobbyPlugin.listeners; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerQuitEvent; + +public class QuitListener implements Listener { + @EventHandler + public void onQuit(PlayerQuitEvent event) { + event.setQuitMessage(""); + } +} diff --git a/Lobby Plugin/src/main/resources/plugin.yml b/Lobby Plugin/src/main/resources/plugin.yml @@ -0,0 +1,11 @@ +name: Osh_Lobby +version: 0.0.1 +description: A lobby plugin bungeeCord-driven server networks. +author: Oshgnacknak +main: de.oshgnacknak.lobbyPlugin.LobbyPlugin + +commands: + fly: + description: Toggles flight + aliases: [f] + permission: oshlobby.fly