made pixelblocks unstackable
This commit is contained in:
parent
c6f0c0ba4b
commit
63dec832ae
@ -6,17 +6,19 @@ import eu.mhsl.minecraft.pixelblocks.listeners.*;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.ShapedRecipe;
|
import org.bukkit.inventory.ShapedRecipe;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public final class PixelBlocks extends JavaPlugin {
|
public final class PixelBlocks extends JavaPlugin {
|
||||||
public static PixelBlocks plugin;
|
public static PixelBlocks plugin;
|
||||||
public static DataBase dataBase;
|
public static DataBase dataBase;
|
||||||
public static String pathSeparator = "/";
|
public static String pathSeparator = File.separator;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
@ -26,18 +28,24 @@ public final class PixelBlocks extends JavaPlugin {
|
|||||||
dataBase = new DataBase("jdbc:sqlite:pixelblocks.db");
|
dataBase = new DataBase("jdbc:sqlite:pixelblocks.db");
|
||||||
dataBase.loadPixelBlocks();
|
dataBase.loadPixelBlocks();
|
||||||
|
|
||||||
getServer().getPluginManager().registerEvents(new PlayerInteractListener(), this);
|
Listener[] listeners = {
|
||||||
getServer().getPluginManager().registerEvents(new PlayerMoveListener(), this);
|
new PlayerInteractListener(),
|
||||||
getServer().getPluginManager().registerEvents(new EntityDamageListener(), this);
|
new PlayerMoveListener(),
|
||||||
getServer().getPluginManager().registerEvents(new BlockBreakListener(), this);
|
new EntityDamageListener(),
|
||||||
getServer().getPluginManager().registerEvents(new BlockPlaceListener(), this);
|
new BlockBreakListener(),
|
||||||
getServer().getPluginManager().registerEvents(new CreatureSpawnListener(), this);
|
new BlockPlaceListener(),
|
||||||
getServer().getPluginManager().registerEvents(new EntityExplodeListener(), this);
|
new CreatureSpawnListener(),
|
||||||
getServer().getPluginManager().registerEvents(new BlockExplodeListener(), this);
|
new EntityExplodeListener(),
|
||||||
getServer().getPluginManager().registerEvents(new PlayerPortalListener(), this);
|
new BlockExplodeListener(),
|
||||||
getServer().getPluginManager().registerEvents(new InventoryListener(), this);
|
new PlayerPortalListener(),
|
||||||
// getServer().getPluginManager().registerEvents(new ChunkLoadListener(), this);
|
new InventoryListener(),
|
||||||
getServer().getPluginManager().registerEvents(new PlayerChangeWorldListener(), this);
|
new PlayerChangeWorldListener(),
|
||||||
|
new CraftItemListener()
|
||||||
|
};
|
||||||
|
|
||||||
|
for (Listener listener : listeners) {
|
||||||
|
getServer().getPluginManager().registerEvents(listener, plugin);
|
||||||
|
}
|
||||||
|
|
||||||
Objects.requireNonNull(getCommand("createpixelblock")).setExecutor(new CreatePixelBlockCommand());
|
Objects.requireNonNull(getCommand("createpixelblock")).setExecutor(new CreatePixelBlockCommand());
|
||||||
Objects.requireNonNull(getCommand("exitworld")).setExecutor(new ExitWorldCommand());
|
Objects.requireNonNull(getCommand("exitworld")).setExecutor(new ExitWorldCommand());
|
||||||
|
@ -12,7 +12,7 @@ public class BlockBreakListener implements Listener {
|
|||||||
PixelBlock pixelBlock = PixelBlock.getPixelBlockFromWorld(event.getBlock().getLocation().getWorld());
|
PixelBlock pixelBlock = PixelBlock.getPixelBlockFromWorld(event.getBlock().getLocation().getWorld());
|
||||||
|
|
||||||
assert pixelBlock != null;
|
assert pixelBlock != null;
|
||||||
pixelBlock.handleBlockBreak(event, false);
|
pixelBlock.handleBlockBreak(event, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ public class BlockPlaceListener implements Listener {
|
|||||||
if(Arrays.stream(standardWorlds).toList().contains(playerWorld)) {
|
if(Arrays.stream(standardWorlds).toList().contains(playerWorld)) {
|
||||||
Location newBlockLocation = event.getBlock().getLocation();
|
Location newBlockLocation = event.getBlock().getLocation();
|
||||||
|
|
||||||
if(event.getItemInHand().getItemMeta().getItemName().equals("Pixelblock")) {
|
if(event.getItemInHand().getItemMeta().getItemName().startsWith("Pixelblock")) {
|
||||||
ItemMeta newMeta = event.getItemInHand().getItemMeta();
|
ItemMeta newMeta = event.getItemInHand().getItemMeta();
|
||||||
newMeta.setItemName(UUID.randomUUID().toString());
|
newMeta.setItemName(UUID.randomUUID().toString());
|
||||||
event.getItemInHand().setItemMeta(newMeta);
|
event.getItemInHand().setItemMeta(newMeta);
|
||||||
@ -44,7 +44,7 @@ public class BlockPlaceListener implements Listener {
|
|||||||
PixelBlock pixelBlock = PixelBlock.getPixelBlockFromWorld(event.getBlock().getLocation().getWorld());
|
PixelBlock pixelBlock = PixelBlock.getPixelBlockFromWorld(event.getBlock().getLocation().getWorld());
|
||||||
|
|
||||||
assert pixelBlock != null;
|
assert pixelBlock != null;
|
||||||
pixelBlock.handleBlockPlace(event, false);
|
pixelBlock.handleBlockPlace(event, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
package eu.mhsl.minecraft.pixelblocks.listeners;
|
|
||||||
|
|
||||||
import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.world.ChunkLoadEvent;
|
|
||||||
import org.bukkit.event.world.ChunkUnloadEvent;
|
|
||||||
|
|
||||||
public class ChunkLoadListener implements Listener {
|
|
||||||
@EventHandler
|
|
||||||
static void onChunkLoad(ChunkLoadEvent event) {
|
|
||||||
PixelBlock.placedPixelBlocks.forEach(pixelBlock -> {
|
|
||||||
if(pixelBlock.hitbox == null) {
|
|
||||||
pixelBlock.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
static void onChunkUnload(ChunkUnloadEvent event) {
|
|
||||||
PixelBlock.placedPixelBlocks.forEach(pixelBlock -> {
|
|
||||||
if(pixelBlock.hitbox != null) {
|
|
||||||
pixelBlock.clearEntities();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,24 @@
|
|||||||
|
package eu.mhsl.minecraft.pixelblocks.listeners;
|
||||||
|
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.inventory.CraftItemEvent;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CraftItemListener implements Listener {
|
||||||
|
@EventHandler
|
||||||
|
static void onCraftItem(CraftItemEvent event) {
|
||||||
|
if(Objects.requireNonNull(event.getCurrentItem()).getItemMeta().getDisplayName().contains("Pixelblock")) {
|
||||||
|
if(event.isShiftClick()) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
} else {
|
||||||
|
ItemMeta meta = event.getCurrentItem().getItemMeta();
|
||||||
|
meta.setItemName("Pixelblock " + UUID.randomUUID());
|
||||||
|
event.getCurrentItem().setItemMeta(meta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,20 +1,18 @@
|
|||||||
package eu.mhsl.minecraft.pixelblocks.listeners;
|
package eu.mhsl.minecraft.pixelblocks.listeners;
|
||||||
|
|
||||||
import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock;
|
import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import static eu.mhsl.minecraft.pixelblocks.PixelBlocks.plugin;
|
|
||||||
|
|
||||||
public class PlayerChangeWorldListener implements Listener {
|
public class PlayerChangeWorldListener implements Listener {
|
||||||
@EventHandler
|
@EventHandler
|
||||||
static void onPlayerChangeWorld(PlayerChangedWorldEvent event) {
|
static void onPlayerChangeWorld(PlayerChangedWorldEvent event) {
|
||||||
if(CommonEventHandlers.isInPixelWorld(event.getFrom())) {
|
if(CommonEventHandlers.isInPixelWorld(event.getFrom())) {
|
||||||
Bukkit.getScheduler().runTaskLater(plugin, () -> Objects.requireNonNull(PixelBlock.getPixelBlockFromWorld(event.getFrom())).update(), 60);
|
// Bukkit.getScheduler().runTaskLater(plugin, () -> Objects.requireNonNull(PixelBlock.getPixelBlockFromWorld(event.getFrom())).update(), 60);
|
||||||
|
Objects.requireNonNull(PixelBlock.getPixelBlockFromWorld(event.getFrom())).update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user