Skip to content

Commit

Permalink
1.5.3: Compatibility for 1.15.* servers.
Browse files Browse the repository at this point in the history
  • Loading branch information
LlmDl committed Jan 18, 2020
1 parent 4940df8 commit 744f843
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 20 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.gmail.llmdlio</groupId>
<artifactId>TownyFlight</artifactId>
<version>1.5.2</version>
<version>1.5.3</version>
<name>TownyFlight</name>
<description>A flight plugin for Towny servers.</description>
<properties>
Expand Down Expand Up @@ -42,7 +42,7 @@
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.14.4-R0.1-SNAPSHOT</version>
<version>1.15.1-R0.1-SNAPSHOT</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
Expand Down
37 changes: 33 additions & 4 deletions src/main/java/com/gmail/llmdlio/townyflight/TownyFlight.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package com.gmail.llmdlio.townyflight;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
Expand All @@ -12,9 +15,11 @@
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

import com.gmail.llmdlio.townyflight.config.TownyFlightConfig;
import com.gmail.llmdlio.townyflight.listeners.PlayerEnterTownListener;
import com.gmail.llmdlio.townyflight.listeners.PlayerFallListener;
import com.gmail.llmdlio.townyflight.listeners.PlayerJoinListener;
import com.gmail.llmdlio.townyflight.listeners.PlayerLeaveTownListener;
import com.gmail.llmdlio.townyflight.listeners.PlayerPVPListener;
Expand All @@ -28,9 +33,10 @@ public class TownyFlight extends JavaPlugin {

private final PlayerEnterTownListener playerEnterListener = new PlayerEnterTownListener(this);
private final PlayerJoinListener playerJoinListener = new PlayerJoinListener(this);
private final PlayerLeaveTownListener playerLeaveListener = new PlayerLeaveTownListener(this);
private final PlayerPVPListener playerPVPListener = new PlayerPVPListener(this);
private final TownUnclaimListener townUnclaimListener = new TownUnclaimListener(this);
private final PlayerLeaveTownListener playerLeaveListener = new PlayerLeaveTownListener();
private final PlayerPVPListener playerPVPListener = new PlayerPVPListener();
private final TownUnclaimListener townUnclaimListener = new TownUnclaimListener();
private final PlayerFallListener playerFallListener = new PlayerFallListener();

public static String pluginPrefix;
private static String flightOnMsg;
Expand All @@ -49,11 +55,15 @@ public class TownyFlight extends JavaPlugin {
private static Boolean disableDuringWar;
private static Boolean showPermissionInMessage;
private static Boolean warsForTownyFound = false;

public static List<Player> flyingPlayers = new ArrayList<>();

private TownyFlightConfig config = new TownyFlightConfig(this);
private static TownyFlight plugin;

public void onEnable() {

plugin = this;
reloadConfig();

if (!LoadSettings()) {
Expand Down Expand Up @@ -155,6 +165,7 @@ private void registerEvents(){
if (disableCombatPrevention)
pluginManager.registerEvents(playerPVPListener, this);
pluginManager.registerEvents(townUnclaimListener, this);
pluginManager.registerEvents(playerFallListener, this);
}

public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Expand Down Expand Up @@ -316,13 +327,31 @@ public static void toggleFlight(Player player, boolean silent, boolean forced, S
player.sendMessage(pluginPrefix + flightOffMsg);
}
}
if (player.isFlying())
System.out.println("player.isFlying() " + player.isFlying());
if (player.isFlying()) {
// As of 1.15 the below line does not seem to be reliable.
player.setFallDistance(-100000);
// As of 1.15 the below is required.
if (!player.isOnGround()) {
flyingPlayers.add(player);
new BukkitRunnable() {
@Override
public void run() {
removeFallProtection(player);
}
}.runTaskLater(plugin, 100);
}
}
player.setAllowFlight(false);
} else {
if (!silent)
player.sendMessage(pluginPrefix + flightOnMsg);
player.setAllowFlight(true);
}
}

private static void removeFallProtection(Player player) {
if (flyingPlayers.contains(player))
flyingPlayers.remove(player);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.gmail.llmdlio.townyflight.listeners;

import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import com.gmail.llmdlio.townyflight.TownyFlight;

public class PlayerFallListener implements Listener {

public PlayerFallListener() {
}

@EventHandler(priority = EventPriority.LOWEST)
private void playerFallEvent (EntityDamageEvent event) {

if (!event.getCause().equals(DamageCause.FALL) && !(event.getEntityType().equals(EntityType.PLAYER)))
return;

Player player = (Player) event.getEntity();
if (TownyFlight.flyingPlayers.contains(player)) {
TownyFlight.flyingPlayers.remove(player);
event.setCancelled(true);
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,7 @@

public class PlayerLeaveTownListener implements Listener{

@SuppressWarnings("unused")
private final TownyFlight plugin;

public PlayerLeaveTownListener(TownyFlight instance) {
plugin = instance;
public PlayerLeaveTownListener() {
}

/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,10 @@

public class PlayerPVPListener implements Listener {

@SuppressWarnings("unused")
private final TownyFlight plugin;

private Towny towny = (Towny) Bukkit.getServer().getPluginManager().getPlugin("Towny");

public PlayerPVPListener(TownyFlight instance) {
plugin = instance;
public PlayerPVPListener() {
}

/*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,8 @@

public class TownUnclaimListener implements Listener {

@SuppressWarnings("unused")
private final TownyFlight plugin;

public TownUnclaimListener(TownyFlight instance) {
plugin = instance;
public TownUnclaimListener() {

}

/*
Expand Down

0 comments on commit 744f843

Please sign in to comment.