fixed various bugs
This commit is contained in:
parent
88b55d4d7c
commit
8bb2d382b9
@ -69,7 +69,7 @@ public final class Main extends JavaPlugin {
|
|||||||
new PlacePixelListener(),
|
new PlacePixelListener(),
|
||||||
new PreventHopperActionsListener(),
|
new PreventHopperActionsListener(),
|
||||||
new PreventLiquidsFlowListener(),
|
new PreventLiquidsFlowListener(),
|
||||||
new PreventPistonsListener(),
|
new PreventRedstoneListener(),
|
||||||
new PreventEntityPlacementListener(),
|
new PreventEntityPlacementListener(),
|
||||||
new DiscoverRecipesListener(),
|
new DiscoverRecipesListener(),
|
||||||
new QuitWhileInPixelBlockListener(),
|
new QuitWhileInPixelBlockListener(),
|
||||||
|
@ -5,6 +5,7 @@ import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlockWorld;
|
|||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.EntityPortalEvent;
|
||||||
import org.bukkit.event.player.PlayerPortalEvent;
|
import org.bukkit.event.player.PlayerPortalEvent;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -20,4 +21,12 @@ public class ExitPixelWorldListener implements Listener {
|
|||||||
Objects.requireNonNull(pixelBlock);
|
Objects.requireNonNull(pixelBlock);
|
||||||
pixelBlock.exitBlock(event.getPlayer());
|
pixelBlock.exitBlock(event.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onEntityPortal(EntityPortalEvent event) {
|
||||||
|
World pixelBlockWorld = event.getFrom().getWorld();
|
||||||
|
if(!PixelBlockWorld.isPixelWorld(pixelBlockWorld)) return;
|
||||||
|
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,10 +4,16 @@ import eu.mhsl.minecraft.pixelblocks.utils.EventCanceling;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.entity.EntityPlaceEvent;
|
import org.bukkit.event.entity.EntityPlaceEvent;
|
||||||
|
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||||
|
|
||||||
public class PreventEntityPlacementListener implements Listener {
|
public class PreventEntityPlacementListener implements Listener {
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void preventPlace(EntityPlaceEvent event) {
|
public void preventPlace(EntityPlaceEvent event) {
|
||||||
EventCanceling.cancelIfInPixelWorld(event, event.getBlock().getWorld());
|
EventCanceling.cancelIfInPixelWorld(event, event.getBlock().getWorld());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void preventProjectile(ProjectileLaunchEvent event) {
|
||||||
|
EventCanceling.cancelIfInPixelWorld(event, event.getEntity().getWorld());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,19 @@
|
|||||||
package eu.mhsl.minecraft.pixelblocks.listeners;
|
package eu.mhsl.minecraft.pixelblocks.listeners;
|
||||||
|
|
||||||
|
import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlockWorld;
|
||||||
import eu.mhsl.minecraft.pixelblocks.utils.EventCanceling;
|
import eu.mhsl.minecraft.pixelblocks.utils.EventCanceling;
|
||||||
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.BlockPistonExtendEvent;
|
import org.bukkit.event.block.BlockPistonExtendEvent;
|
||||||
|
import org.bukkit.event.block.BlockRedstoneEvent;
|
||||||
|
|
||||||
|
public class PreventRedstoneListener implements Listener {
|
||||||
|
@EventHandler
|
||||||
|
public void preventRedstone(BlockRedstoneEvent event) {
|
||||||
|
boolean isInPixelBlock = PixelBlockWorld.isPixelWorld(event.getBlock().getWorld());
|
||||||
|
if(isInPixelBlock) event.setNewCurrent(0);
|
||||||
|
}
|
||||||
|
|
||||||
public class PreventPistonsListener implements Listener {
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void blockPistons(BlockPistonExtendEvent event) {
|
public void blockPistons(BlockPistonExtendEvent event) {
|
||||||
EventCanceling.shouldCancelInPixelBlock(
|
EventCanceling.shouldCancelInPixelBlock(
|
@ -44,9 +44,9 @@ public class PixelBlockHitbox {
|
|||||||
double endingZ = MinMaxUtil.getMaxProperty(pixels, pixel -> pixel.relativeLocation().getZ());
|
double endingZ = MinMaxUtil.getMaxProperty(pixels, pixel -> pixel.relativeLocation().getZ());
|
||||||
|
|
||||||
Location spawnLocation = absoluteLocation.clone().add(
|
Location spawnLocation = absoluteLocation.clone().add(
|
||||||
((startingX+endingX)/2)/pixelsPerBlock,
|
((startingX+endingX)/2+0.5)/pixelsPerBlock,
|
||||||
(startingY/pixelsPerBlock)-0,
|
(startingY/pixelsPerBlock)-0,
|
||||||
((startingZ+endingZ)/2)/pixelsPerBlock
|
((startingZ+endingZ)/2+0.5)/pixelsPerBlock
|
||||||
);
|
);
|
||||||
|
|
||||||
float height = (float) (endingY-startingY+1)/pixelsPerBlock;
|
float height = (float) (endingY-startingY+1)/pixelsPerBlock;
|
||||||
|
@ -4,15 +4,18 @@ import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock;
|
|||||||
import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlockWorld;
|
import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlockWorld;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
public class EventCanceling {
|
public class EventCanceling {
|
||||||
public static void shouldCancelInPixelBlock(Cancellable event, World world, Function<PixelBlock, Boolean> callback) {
|
public static void shouldCancelInPixelBlock(Cancellable event, World world, Function<PixelBlock, Boolean> callback) {
|
||||||
if(!PixelBlockWorld.isPixelWorld(world)) return;
|
if(!PixelBlockWorld.isPixelWorld(world)) return;
|
||||||
PixelBlock pixelBlock = PixelBlock.getPixelBlockFromBlockWorld(world);
|
@Nullable PixelBlock pixelBlock = PixelBlock.getPixelBlockFromBlockWorld(world);
|
||||||
Objects.requireNonNull(pixelBlock);
|
if(pixelBlock == null) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(callback.apply(pixelBlock)) event.setCancelled(true);
|
if(callback.apply(pixelBlock)) event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user