54 lines
2.5 KiB
Java
54 lines
2.5 KiB
Java
package com.sekwah.advancedportals.spigot;
|
|
|
|
import com.sekwah.advancedportals.core.AdvancedPortalsCore;
|
|
import com.sekwah.advancedportals.core.CoreListeners;
|
|
import com.sekwah.advancedportals.core.data.PortalLocation;
|
|
import com.sekwah.advancedportals.spigot.coreconnector.container.SpigotPlayerContainer;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.EventPriority;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.block.Action;
|
|
import org.bukkit.event.block.BlockPlaceEvent;
|
|
import org.bukkit.event.player.PlayerInteractEvent;
|
|
import org.bukkit.event.player.PlayerJoinEvent;
|
|
import org.bukkit.event.player.PlayerQuitEvent;
|
|
|
|
public class Listeners implements Listener {
|
|
|
|
private CoreListeners coreListeners = AdvancedPortalsCore.getInstance().getCoreListeners();
|
|
|
|
@EventHandler
|
|
public void onJoinEvent(PlayerJoinEvent event) {
|
|
coreListeners.playerJoin(new SpigotPlayerContainer(event.getPlayer()));
|
|
}
|
|
|
|
@EventHandler
|
|
public void onPlayerQuitEvent(PlayerQuitEvent event) {
|
|
coreListeners.playerLeave(new SpigotPlayerContainer(event.getPlayer()));
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onBlockPlace(BlockPlaceEvent event) {
|
|
if (!event.isCancelled()) {
|
|
Location blockloc = event.getBlock().getLocation();
|
|
this.coreListeners.blockPlace(new SpigotPlayerContainer(event.getPlayer()),
|
|
new PortalLocation(blockloc.getWorld().getName(), blockloc.getBlockX(), blockloc.getBlockY(), blockloc.getBlockZ()), event.getBlockPlaced().getType().toString(),
|
|
event.getItemInHand().getType().toString(), event.getItemInHand().getItemMeta().getDisplayName());
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onItemInteract(PlayerInteractEvent event) {
|
|
if (!event.isCancelled() && (event.getAction() == Action.LEFT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_BLOCK) && event.getItem() != null) {
|
|
Location blockloc = event.getClickedBlock().getLocation();
|
|
boolean allowEvent = this.coreListeners.playerInteractWithBlock(new SpigotPlayerContainer(event.getPlayer()), event.getMaterial().toString(),
|
|
event.getItem().getItemMeta().getDisplayName(),
|
|
new PortalLocation(blockloc.getWorld().getName(), blockloc.getBlockX(), blockloc.getBlockY(), blockloc.getBlockZ()),
|
|
event.getAction() == Action.LEFT_CLICK_BLOCK);
|
|
event.setCancelled(!allowEvent);
|
|
}
|
|
}
|
|
|
|
}
|