From 077409e2794f83b4a3925c9d780a9796ecccb5c5 Mon Sep 17 00:00:00 2001 From: Oshgnacknak Date: Tue, 16 Oct 2018 22:42:31 +0200 Subject: [PATCH] Most basic lobby struff and begin of /fly command --- Lobby Plugin/.classpath | 20 ++++++++++ Lobby Plugin/.gitignore | 1 + Lobby Plugin/.project | 23 ++++++++++++ .../.settings/org.eclipse.jdt.core.prefs | 13 +++++++ .../.settings/org.eclipse.m2e.core.prefs | 4 ++ Lobby Plugin/pom.xml | 37 +++++++++++++++++++ .../oshgnacknak/lobbyPlugin/LobbyPlugin.java | 32 ++++++++++++++++ .../oshgnacknak/lobbyPlugin/Permissions.java | 10 +++++ .../lobbyPlugin/listeners/DamageListener.java | 25 +++++++++++++ .../listeners/InteractListener.java | 29 +++++++++++++++ .../lobbyPlugin/listeners/JoinListener.java | 17 +++++++++ .../lobbyPlugin/listeners/QuitListener.java | 12 ++++++ Lobby Plugin/src/main/resources/plugin.yml | 11 ++++++ 13 files changed, 234 insertions(+) create mode 100644 Lobby Plugin/.classpath create mode 100644 Lobby Plugin/.gitignore create mode 100644 Lobby Plugin/.project create mode 100644 Lobby Plugin/.settings/org.eclipse.jdt.core.prefs create mode 100644 Lobby Plugin/.settings/org.eclipse.m2e.core.prefs create mode 100644 Lobby Plugin/pom.xml create mode 100644 Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/LobbyPlugin.java create mode 100644 Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/Permissions.java create mode 100644 Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/DamageListener.java create mode 100644 Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/InteractListener.java create mode 100644 Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/JoinListener.java create mode 100644 Lobby Plugin/src/de/oshgnacknak/lobbyPlugin/listeners/QuitListener.java create mode 100644 Lobby Plugin/src/main/resources/plugin.yml diff --git a/Lobby Plugin/.classpath b/Lobby Plugin/.classpath new file mode 100644 index 0000000..6aa9e0d --- /dev/null +++ b/Lobby Plugin/.classpath @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Lobby Plugin/.gitignore b/Lobby Plugin/.gitignore new file mode 100644 index 0000000..b83d222 --- /dev/null +++ b/Lobby Plugin/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/Lobby Plugin/.project b/Lobby Plugin/.project new file mode 100644 index 0000000..19601e5 --- /dev/null +++ b/Lobby Plugin/.project @@ -0,0 +1,23 @@ + + + Lobby Plugin + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.jdt.core.javanature + + diff --git a/Lobby Plugin/.settings/org.eclipse.jdt.core.prefs b/Lobby Plugin/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..e24b722 --- /dev/null +++ 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 new file mode 100644 index 0000000..14b697b --- /dev/null +++ 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 new file mode 100644 index 0000000..440b6d3 --- /dev/null +++ b/Lobby Plugin/pom.xml @@ -0,0 +1,37 @@ + + 4.0.0 + de.oshgnacknak.lobbyPlugin + LobbyPlugin + 0.0.1-SNAPSHOT + LobbyPlugin + A lobby plugin bungeeCord-driven server networks. + + src + + + maven-compiler-plugin + 3.8.0 + + 1.8 + 1.8 + + + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + org.bukkit + bukkit + 1.13-R0.1-SNAPSHOT + provided + + + \ 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 new file mode 100644 index 0000000..6b42524 --- /dev/null +++ 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 new file mode 100644 index 0000000..fe11bf9 --- /dev/null +++ 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 new file mode 100644 index 0000000..f9f6ba0 --- /dev/null +++ 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 new file mode 100644 index 0000000..b6d1978 --- /dev/null +++ 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 new file mode 100644 index 0000000..c0eea0b --- /dev/null +++ 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 new file mode 100644 index 0000000..f9cfae2 --- /dev/null +++ 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 new file mode 100644 index 0000000..36f8736 --- /dev/null +++ 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