mirror of
https://github.com/Multiverse/Multiverse-Core.git
synced 2025-02-16 12:31:59 +01:00
Refactor and fix checkstyles for some listeners
This commit is contained in:
parent
af7d5a8cb0
commit
454bcd36e5
@ -31,10 +31,11 @@ public class MVChatListener implements InjectableListener {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This handles a {@link AsyncPlayerChatEvent}.
|
* This handles a {@link AsyncPlayerChatEvent}.
|
||||||
|
*
|
||||||
* @param event The {@link AsyncPlayerChatEvent}.
|
* @param event The {@link AsyncPlayerChatEvent}.
|
||||||
*/
|
*/
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void playerChat(AsyncPlayerChatEvent event) {
|
public void asyncPlayerChat(AsyncPlayerChatEvent event) {
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@ public class MVEntityListener implements InjectableListener {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is called when an entity's food level goes higher or lower.
|
* This method is called when an entity's food level goes higher or lower.
|
||||||
|
*
|
||||||
* @param event The Event that was fired.
|
* @param event The Event that was fired.
|
||||||
*/
|
*/
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -52,6 +53,7 @@ public class MVEntityListener implements InjectableListener {
|
|||||||
if (!(event.getEntity() instanceof Player player)) {
|
if (!(event.getEntity() instanceof Player player)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
worldManager.getLoadedWorld(player.getWorld())
|
worldManager.getLoadedWorld(player.getWorld())
|
||||||
.peek(world -> {
|
.peek(world -> {
|
||||||
if (!world.getHunger() && event.getFoodLevel() < player.getFoodLevel()) {
|
if (!world.getHunger() && event.getFoodLevel() < player.getFoodLevel()) {
|
||||||
@ -62,6 +64,7 @@ public class MVEntityListener implements InjectableListener {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is called when an entity's health goes up or down.
|
* This method is called when an entity's health goes up or down.
|
||||||
|
*
|
||||||
* @param event The Event that was fired.
|
* @param event The Event that was fired.
|
||||||
*/
|
*/
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -69,6 +72,7 @@ public class MVEntityListener implements InjectableListener {
|
|||||||
if (event.isCancelled() || event.getRegainReason() != RegainReason.REGEN) {
|
if (event.isCancelled() || event.getRegainReason() != RegainReason.REGEN) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
worldManager.getLoadedWorld(event.getEntity().getWorld())
|
worldManager.getLoadedWorld(event.getEntity().getWorld())
|
||||||
.peek(world -> {
|
.peek(world -> {
|
||||||
if (!world.getAutoHeal()) {
|
if (!world.getAutoHeal()) {
|
||||||
@ -79,6 +83,7 @@ public class MVEntityListener implements InjectableListener {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle Animal/Monster Spawn settings, seems like a more concrete method than using CraftBukkit.
|
* Handle Animal/Monster Spawn settings, seems like a more concrete method than using CraftBukkit.
|
||||||
|
*
|
||||||
* @param event The event.
|
* @param event The event.
|
||||||
*/
|
*/
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
@ -22,9 +22,10 @@ import org.jvnet.hk2.annotations.Service;
|
|||||||
|
|
||||||
import org.mvplugins.multiverse.core.config.MVCoreConfig;
|
import org.mvplugins.multiverse.core.config.MVCoreConfig;
|
||||||
import org.mvplugins.multiverse.core.inject.InjectableListener;
|
import org.mvplugins.multiverse.core.inject.InjectableListener;
|
||||||
import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld;
|
|
||||||
import org.mvplugins.multiverse.core.world.WorldManager;
|
import org.mvplugins.multiverse.core.world.WorldManager;
|
||||||
|
|
||||||
|
import static org.bukkit.PortalType.CUSTOM;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A custom listener for portal related events.
|
* A custom listener for portal related events.
|
||||||
*/
|
*/
|
||||||
@ -42,49 +43,51 @@ public class MVPortalListener implements InjectableListener {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This is called when a portal is formed.
|
* This is called when a portal is formed.
|
||||||
|
*
|
||||||
* @param event The event where a portal was created or formed due to a world link
|
* @param event The event where a portal was created or formed due to a world link
|
||||||
*/
|
*/
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void portalForm(PortalCreateEvent event) {
|
public void portalCreate(PortalCreateEvent event) {
|
||||||
Logging.fine("Attempting to create portal at '%s' with reason: %s", event.getWorld().getName(), event.getReason());
|
Logging.fine("Attempting to create portal at '%s' with reason: %s",
|
||||||
|
event.getWorld().getName(), event.getReason());
|
||||||
|
|
||||||
LoadedMultiverseWorld world = this.worldManager.getLoadedWorld(event.getWorld()).getOrNull();
|
this.worldManager.getLoadedWorld(event.getWorld()).peek(world -> {
|
||||||
if (world == null) {
|
PortalType targetType = getPortalType(event);
|
||||||
Logging.fine("World '%s' is not managed by Multiverse! Ignoring at PortalCreateEvent.", event.getWorld().getName());
|
if (targetType == PortalType.CUSTOM) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PortalType targetType;
|
|
||||||
switch (event.getReason()) {
|
|
||||||
case FIRE:
|
|
||||||
// Ensure portal by flint and steel actually creates nether
|
|
||||||
boolean isNether = false;
|
|
||||||
for (BlockState block : event.getBlocks()) {
|
|
||||||
if (block.getType() == Material.NETHER_PORTAL) {
|
|
||||||
isNether = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!isNether) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
targetType = PortalType.NETHER;
|
|
||||||
break;
|
|
||||||
case NETHER_PAIR:
|
|
||||||
targetType = PortalType.NETHER;
|
|
||||||
break;
|
|
||||||
case END_PLATFORM:
|
|
||||||
targetType = PortalType.ENDER;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
Logging.fine("Portal created is not NETHER or ENDER type. Ignoring...");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!world.getPortalForm().isPortalAllowed(targetType)) {
|
if (!world.getPortalForm().isPortalAllowed(targetType)) {
|
||||||
Logging.fine("Cancelling creation of %s portal because portalForm disallows.", targetType);
|
Logging.fine("Cancelling creation of %s portal because portalForm disallows.", targetType);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
}).onEmpty(() -> {
|
||||||
|
Logging.fine("World '%s' is not managed by Multiverse! Ignoring at PortalCreateEvent.",
|
||||||
|
event.getWorld().getName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private PortalType getPortalType(PortalCreateEvent event) {
|
||||||
|
return switch (event.getReason()) {
|
||||||
|
case FIRE -> {
|
||||||
|
// Ensure portal by flint and steel actually creates nether
|
||||||
|
for (BlockState block : event.getBlocks()) {
|
||||||
|
if (block.getType() == Material.NETHER_PORTAL) {
|
||||||
|
yield PortalType.NETHER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
yield CUSTOM;
|
||||||
|
}
|
||||||
|
case NETHER_PAIR -> {
|
||||||
|
yield PortalType.NETHER;
|
||||||
|
}
|
||||||
|
case END_PLATFORM -> {
|
||||||
|
yield PortalType.ENDER;
|
||||||
|
}
|
||||||
|
default -> {
|
||||||
|
Logging.fine("Portal created is not NETHER or ENDER type. Ignoring...");
|
||||||
|
yield CUSTOM;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -93,28 +96,28 @@ public class MVPortalListener implements InjectableListener {
|
|||||||
* @param event The player interact event.
|
* @param event The player interact event.
|
||||||
*/
|
*/
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void portalForm(PlayerInteractEvent event) {
|
public void playerInteract(PlayerInteractEvent event) {
|
||||||
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) {
|
if (isCreateEndPortalInteraction(event)) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (event.getClickedBlock() == null || event.getClickedBlock().getType() != Material.END_PORTAL_FRAME) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (event.getItem() == null || event.getItem().getType() != Material.ENDER_EYE) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
LoadedMultiverseWorld world = this.worldManager.getLoadedWorld(event.getPlayer().getWorld()).getOrNull();
|
|
||||||
if (world == null) {
|
|
||||||
Logging.fine("World '%s' is not managed by Multiverse! Ignoring at PlayerInteractEvent.",
|
|
||||||
event.getPlayer().getWorld().getName());
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.worldManager.getLoadedWorld(event.getPlayer().getWorld()).peek(world -> {
|
||||||
if (!world.getPortalForm().isPortalAllowed(PortalType.ENDER)) {
|
if (!world.getPortalForm().isPortalAllowed(PortalType.ENDER)) {
|
||||||
Logging.fine("Cancelling creation of ENDER portal because portalForm disallows.");
|
Logging.fine("Cancelling creation of ENDER portal because portalForm disallows.");
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
}).onEmpty(() -> {
|
||||||
|
Logging.fine("World '%s' is not managed by Multiverse! Ignoring at PlayerInteractEvent.",
|
||||||
|
event.getPlayer().getWorld().getName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isCreateEndPortalInteraction(PlayerInteractEvent event) {
|
||||||
|
return event.getAction() != Action.RIGHT_CLICK_BLOCK
|
||||||
|
|| event.getClickedBlock() == null
|
||||||
|
|| event.getClickedBlock().getType() != Material.END_PORTAL_FRAME
|
||||||
|
|| event.getItem() == null
|
||||||
|
|| event.getItem().getType() != Material.ENDER_EYE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -127,7 +130,7 @@ public class MVPortalListener implements InjectableListener {
|
|||||||
if (event.isCancelled() || event.getTo() == null) {
|
if (event.isCancelled() || event.getTo() == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!config.isUsingCustomPortalSearch()) {
|
if (config.isUsingCustomPortalSearch()) {
|
||||||
event.setSearchRadius(config.getCustomPortalSearchRadius());
|
event.setSearchRadius(config.getCustomPortalSearchRadius());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ public class MVWorldListener implements InjectableListener {
|
|||||||
* @param event The Event that was fired.
|
* @param event The Event that was fired.
|
||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
public void unloadWorld(WorldUnloadEvent event) {
|
public void worldUnload(WorldUnloadEvent event) {
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -58,7 +58,7 @@ public class MVWorldListener implements InjectableListener {
|
|||||||
* @param event The Event that was fired.
|
* @param event The Event that was fired.
|
||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
public void loadWorld(WorldLoadEvent event) {
|
public void worldLoad(WorldLoadEvent event) {
|
||||||
worldManager.getUnloadedWorld(event.getWorld().getName())
|
worldManager.getUnloadedWorld(event.getWorld().getName())
|
||||||
.peek(world -> {
|
.peek(world -> {
|
||||||
Logging.fine("Loading world: " + world.getName());
|
Logging.fine("Loading world: " + world.getName());
|
||||||
|
Loading…
Reference in New Issue
Block a user