Clean up PlayerListener.java
This commit is contained in:
parent
9e4fc5fffd
commit
04d5a76ac6
|
|
@ -6,6 +6,7 @@ import com.alttd.cometskyblock.island.IslandPlayer;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
|
|
@ -21,110 +22,31 @@ public class PlayerListener implements Listener {
|
||||||
public PlayerListener(CometSkyBlockPlugin plugin) {
|
public PlayerListener(CometSkyBlockPlugin plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
// TODO -- extract all of the duplicate code
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void onBlockPlace(BlockPlaceEvent event) {
|
public void onBlockPlace(BlockPlaceEvent event) {
|
||||||
Player player = event.getPlayer();
|
canInteract(event, event.getPlayer());
|
||||||
World world = player.getWorld();
|
|
||||||
IslandPlayer islandPlayer = IslandPlayer.getIslandPlayer(player.getUniqueId());
|
|
||||||
if (!world.getUID().equals(islandPlayer.islandUUID())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Island island = Island.getIsland(world.getUID());
|
|
||||||
if (island == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!island.canBuild(player.getUniqueId())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) {
|
public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) {
|
||||||
Player player = event.getPlayer();
|
canInteract(event, event.getPlayer());
|
||||||
World world = player.getWorld();
|
|
||||||
IslandPlayer islandPlayer = IslandPlayer.getIslandPlayer(player.getUniqueId());
|
|
||||||
if (!world.getUID().equals(islandPlayer.islandUUID())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Island island = Island.getIsland(world.getUID());
|
|
||||||
if (island == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!island.canBuild(player.getUniqueId())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void onBlockIgnite(PlayerBucketEmptyEvent event) {
|
public void onBlockIgnite(PlayerBucketEmptyEvent event) {
|
||||||
Player player = event.getPlayer();
|
canInteract(event, event.getPlayer());
|
||||||
World world = player.getWorld();
|
|
||||||
IslandPlayer islandPlayer = IslandPlayer.getIslandPlayer(player.getUniqueId());
|
|
||||||
if (!world.getUID().equals(islandPlayer.islandUUID())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Island island = Island.getIsland(world.getUID());
|
|
||||||
if (island == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!island.canBuild(player.getUniqueId())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void onBlockBreak(BlockBreakEvent event) {
|
public void onBlockBreak(BlockBreakEvent event) {
|
||||||
Player player = event.getPlayer();
|
canInteract(event, event.getPlayer());
|
||||||
World world = player.getWorld();
|
|
||||||
IslandPlayer islandPlayer = IslandPlayer.getIslandPlayer(player.getUniqueId());
|
|
||||||
if (!world.getUID().equals(islandPlayer.islandUUID())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Island island = Island.getIsland(world.getUID());
|
|
||||||
if (island == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!island.canBuild(player.getUniqueId())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void onPlayerBucketFill(PlayerBucketFillEvent event) {
|
public void onPlayerBucketFill(PlayerBucketFillEvent event) {
|
||||||
Player player = event.getPlayer();
|
canInteract(event, event.getPlayer());
|
||||||
World world = player.getWorld();
|
|
||||||
IslandPlayer islandPlayer = IslandPlayer.getIslandPlayer(player.getUniqueId());
|
|
||||||
if (!world.getUID().equals(islandPlayer.islandUUID())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Island island = Island.getIsland(world.getUID());
|
|
||||||
if (island == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!island.canBuild(player.getUniqueId())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void onEntityBlockForm(EntityBlockFormEvent event) { // not a player listener
|
public void onEntityBlockForm(EntityBlockFormEvent event) { // not a player listener
|
||||||
World world = event.getEntity().getWorld();
|
World world = event.getEntity().getWorld();
|
||||||
|
|
@ -142,20 +64,42 @@ public class PlayerListener implements Listener {
|
||||||
public void islandVisitProtection(EntityDamageEvent event) {
|
public void islandVisitProtection(EntityDamageEvent event) {
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
if (entity instanceof Player player) {
|
if (entity instanceof Player player) {
|
||||||
Island island = Island.getIsland(player.getWorld().getUID());
|
if (!canInteract(event, player)) {
|
||||||
if (island == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (island.worldName() == null || island.worldName().isEmpty()) { // Worlds not generated by us will have this as null or empty
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
event.setCancelled(true);
|
|
||||||
if (event.getCause() == EntityDamageEvent.DamageCause.VOID || player.getLocation().getY() < 0) {
|
if (event.getCause() == EntityDamageEvent.DamageCause.VOID || player.getLocation().getY() < 0) {
|
||||||
player.setFallDistance(0);
|
player.setFallDistance(0);
|
||||||
player.teleportAsync(plugin.getServer().getWorlds().get(0).getSpawnLocation());
|
player.teleportAsync(plugin.getServer().getWorlds().get(0).getSpawnLocation());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean canInteract(Cancellable event, Player player) {
|
||||||
|
World world = player.getWorld();
|
||||||
|
IslandPlayer islandPlayer = IslandPlayer.getIslandPlayer(player.getUniqueId());
|
||||||
|
if (!world.getUID().equals(islandPlayer.islandUUID())) {
|
||||||
|
return cancelEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
Island island = Island.getIsland(world.getUID());
|
||||||
|
if (island == null) {
|
||||||
|
return cancelEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Worlds not generated by CometSkyblock will have this as null or empty
|
||||||
|
// We do not care about these worlds - yet
|
||||||
|
if (island.worldName() == null || island.worldName().isEmpty()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!island.canBuild(player.getUniqueId())) {
|
||||||
|
return cancelEvent(event);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean cancelEvent(Cancellable event) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user