Most basic lobby struff and begin of /fly command

This commit is contained in:
Oshgnacknak 2018-10-16 22:42:31 +02:00
commit 077409e279
13 changed files with 234 additions and 0 deletions

20
Lobby Plugin/.classpath Normal file
View file

@ -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>

1
Lobby Plugin/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/target/

23
Lobby Plugin/.project Normal file
View file

@ -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>

View file

@ -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

View file

@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

37
Lobby Plugin/pom.xml Normal file
View file

@ -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>

View file

@ -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);
}
}
}

View file

@ -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() {
}
}

View file

@ -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());
}
}
}

View file

@ -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);
}
}

View file

@ -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("");
}
}

View file

@ -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("");
}
}

View file

@ -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