Added Item functionalities and portal
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package eu.mhsl.minecraft.pixelblocks.listeners;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockExplodeEvent;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class BlockExplodeListener implements Listener {
|
||||
@EventHandler
|
||||
static void onBlockExplode(BlockExplodeEvent event) {
|
||||
Location eventLocation = event.getBlock().getLocation();
|
||||
World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1), Bukkit.getWorlds().get(2)};
|
||||
|
||||
if(!Arrays.stream(standardWorlds).toList().contains(eventLocation.getWorld())) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,20 +7,48 @@ import org.bukkit.World;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.UUID;
|
||||
|
||||
public class BlockPlaceListener implements Listener {
|
||||
@EventHandler
|
||||
static void onBlockPlace(BlockPlaceEvent event) {
|
||||
Location blockLocation = event.getBlock().getLocation();
|
||||
World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1), Bukkit.getWorlds().get(2)};
|
||||
if(event.getItemInHand().getItemMeta().getDisplayName().contains("Pixelblock")
|
||||
&& !event.getItemInHand().getItemMeta().getItemName().isEmpty()
|
||||
&& event.getItemInHand().getItemMeta().getEnchantmentGlintOverride()) {
|
||||
event.setCancelled(true);
|
||||
|
||||
if(!Arrays.stream(standardWorlds).toList().contains(blockLocation.getWorld())) {
|
||||
PixelBlock pixelBlock = PixelBlock.getPixelBlockFromWorld(blockLocation.getWorld());
|
||||
World playerWorld = event.getPlayer().getWorld();
|
||||
World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1)};
|
||||
|
||||
assert pixelBlock != null;
|
||||
pixelBlock.handleBlockPlace(event, true);
|
||||
if(Arrays.stream(standardWorlds).toList().contains(playerWorld)) {
|
||||
Location newBlockLocation = event.getBlock().getLocation();
|
||||
|
||||
if(event.getItemInHand().getItemMeta().getItemName().equals("Pixelblock")) {
|
||||
ItemMeta newMeta = event.getItemInHand().getItemMeta();
|
||||
newMeta.setItemName(UUID.randomUUID().toString());
|
||||
event.getItemInHand().setItemMeta(newMeta);
|
||||
}
|
||||
|
||||
PixelBlock pixelBlock = new PixelBlock(newBlockLocation, event.getPlayer().getUniqueId(), UUID.fromString(event.getItemInHand().getItemMeta().getItemName()));
|
||||
pixelBlock.place(newBlockLocation);
|
||||
|
||||
event.getPlayer().getInventory().remove(event.getItemInHand());
|
||||
} else {
|
||||
event.getPlayer().sendMessage("Du kannst nur in der Overworld oder im Nether Pixelblocks platzieren!");
|
||||
}
|
||||
} else {
|
||||
Location blockLocation = event.getBlock().getLocation();
|
||||
World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1), Bukkit.getWorlds().get(2)};
|
||||
|
||||
if(!Arrays.stream(standardWorlds).toList().contains(blockLocation.getWorld())) {
|
||||
PixelBlock pixelBlock = PixelBlock.getPixelBlockFromWorld(blockLocation.getWorld());
|
||||
|
||||
assert pixelBlock != null;
|
||||
pixelBlock.handleBlockPlace(event, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package eu.mhsl.minecraft.pixelblocks.listeners;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class EntityExplodeListener implements Listener {
|
||||
@EventHandler
|
||||
static void onEntityExplode(EntityExplodeEvent event) {
|
||||
Location eventLocation = event.getLocation();
|
||||
World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1), Bukkit.getWorlds().get(2)};
|
||||
|
||||
if(!Arrays.stream(standardWorlds).toList().contains(eventLocation.getWorld())) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package eu.mhsl.minecraft.pixelblocks.listeners;
|
||||
|
||||
import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@@ -18,9 +18,21 @@ public class PlayerMoveListener implements Listener {
|
||||
|
||||
if(!Arrays.stream(standardWorlds).toList().contains(playerWorld)) {
|
||||
Location playerLocation = event.getPlayer().getLocation();
|
||||
PixelBlock pixelBlock = PixelBlock.getPixelBlockFromWorld(playerWorld);
|
||||
assert pixelBlock != null;
|
||||
Location portalLocation = pixelBlock.getPortalLocation().clone();
|
||||
|
||||
if(playerLocation.y() < -65) {
|
||||
playerWorld.getSpawnLocation().clone().subtract(1, 1, 1).getBlock().setType(Material.WHITE_CONCRETE);
|
||||
event.getPlayer().teleport(event.getPlayer().getWorld().getSpawnLocation());
|
||||
event.getPlayer().teleport(pixelBlock.getPlayerSpawnLocation(event.getPlayer()));
|
||||
} else if(playerLocation.getZ() < portalLocation.getZ()+1
|
||||
&& playerLocation.getZ() > portalLocation.getZ()) {
|
||||
if(playerLocation.getX() < portalLocation.getX()+3
|
||||
&& playerLocation.getX() > portalLocation.getX()+1) {
|
||||
if(playerLocation.getY() < portalLocation.getY()+4
|
||||
&& playerLocation.getY() > portalLocation.getY()+1) {
|
||||
event.getPlayer().teleport(pixelBlock.lastEntryLocation);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package eu.mhsl.minecraft.pixelblocks.listeners;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerPortalEvent;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class PlayerPortalListener implements Listener {
|
||||
@EventHandler
|
||||
static void onPlayerPortal(PlayerPortalEvent event) {
|
||||
World worldLeft = event.getFrom().getWorld();
|
||||
World[] standardWorlds = {Bukkit.getWorlds().get(0), Bukkit.getWorlds().get(1), Bukkit.getWorlds().get(2)};
|
||||
|
||||
if(!Arrays.stream(standardWorlds).toList().contains(worldLeft)) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user