diff --git a/src/main/java/de/mviper/elevator/Elevator.java b/src/main/java/de/mviper/elevator/Elevator.java index f875cf2..9eaee61 100644 --- a/src/main/java/de/mviper/elevator/Elevator.java +++ b/src/main/java/de/mviper/elevator/Elevator.java @@ -89,19 +89,7 @@ public class Elevator extends JavaPlugin implements Listener { } private void registerElevatorRecipe() { - ItemStack item = new ItemStack(Material.DAYLIGHT_DETECTOR); - ItemMeta meta = item.getItemMeta(); - if (meta != null) { - meta.setDisplayName("§b§lAufzug-Modul"); - meta.setLore(Arrays.asList( - "§7Platziere dies als Etage.", - "§eRechtsklick: §fMenü öffnen", - "§eSpringen/Sneaken: §fReisen" - )); - meta.addEnchant(Enchantment.LUCK, 1, true); - meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); - item.setItemMeta(meta); - } + ItemStack item = createElevatorModuleItem(); NamespacedKey key = new NamespacedKey(this, "elevator_module"); ShapedRecipe recipe = new ShapedRecipe(key, item); @@ -164,4 +152,21 @@ public class Elevator extends JavaPlugin implements Listener { public static Elevator getInstance() { return instance; } public DatabaseManager getDatabaseManager() { return databaseManager; } public HologramManager getHologramManager() { return hologramManager; } + + public ItemStack createElevatorModuleItem() { + ItemStack item = new ItemStack(Material.DAYLIGHT_DETECTOR); + ItemMeta meta = item.getItemMeta(); + if (meta != null) { + meta.setDisplayName("§b§lAufzug-Modul"); + meta.setLore(Arrays.asList( + "§7Platziere dies als Etage.", + "§eRechtsklick: §fMenü öffnen", + "§eSpringen/Sneaken: §fReisen" + )); + meta.addEnchant(Enchantment.LUCK, 1, true); + meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + item.setItemMeta(meta); + } + return item; + } } \ No newline at end of file diff --git a/src/main/java/de/mviper/elevator/ElevatorListener.java b/src/main/java/de/mviper/elevator/ElevatorListener.java index 996ace6..5b10af2 100644 --- a/src/main/java/de/mviper/elevator/ElevatorListener.java +++ b/src/main/java/de/mviper/elevator/ElevatorListener.java @@ -331,7 +331,27 @@ public class ElevatorListener implements Listener { return; } - db.removeElevator(e.getBlock().getLocation()); + e.setDropItems(false); + e.setExpToDrop(0); + + Location breakLoc = e.getBlock().getLocation(); + + db.removeElevator(breakLoc); + e.getBlock().setType(Material.AIR); + + if (e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + ItemStack moduleItem = Elevator.getInstance().createElevatorModuleItem(); + HashMap leftover = e.getPlayer().getInventory().addItem(moduleItem); + for (ItemStack rest : leftover.values()) { + breakLoc.getWorld().dropItemNaturally(breakLoc, rest); + } + } + + if (breakLoc.getWorld() != null) { + breakLoc.getWorld().spawnParticle(Particle.CLOUD, breakLoc.add(0.5, 0.5, 0.5), 12, 0.2, 0.2, 0.2, 0.01); + breakLoc.getWorld().playSound(breakLoc, Sound.BLOCK_IRON_DOOR_CLOSE, 0.7f, 1.6f); + } + e.getPlayer().sendMessage("§eAufzug-Modul entfernt."); } } \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 4bbf6a5..64ffdf6 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: Elevator -version: 1.3 +version: 1.4 main: de.mviper.elevator.Elevator api-version: 1.20 author: mviper