diordrip Posted July 6, 2023 Share Posted July 6, 2023 Hey, ich bin gerade dabei mich ins Plugin Programmieren rein zu Arbeiten und jetzt habe ich mit Hilfe von ChatGPT folgenden Code erstellt, das Problem bei dem Code ist jedoch das ich nur einen normalen Spawner gedroppt bekomme statt des Mob-Spezifischen. Wäre echt hilfreich wenn einer weiß warum dies so ist und wie ich das ändern kann. Mit freundlichen Grüßen diordrip package de.diordrip.silkspawner; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.EntityType; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BlockStateMeta; import org.bukkit.plugin.java.JavaPlugin; public final class Silkspawner extends JavaPlugin implements Listener { @Override public void onEnable() { getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void onBlockBreak(BlockBreakEvent event){ Block block = event.getBlock(); if (block.getType() == Material.SPAWNER && hasSilkTouch(event.getPlayer().getItemInHand())){ CreatureSpawner spawner = (CreatureSpawner) block.getState(); EntityType spawnedType = spawner.getSpawnedType(); ItemStack spawnerItem = new ItemStack(Material.SPAWNER); BlockStateMeta meta = (BlockStateMeta) spawnerItem.getItemMeta(); CreatureSpawner spawnerState = (CreatureSpawner) meta.getBlockState(); spawnerState.setSpawnedType(spawnedType); meta.setBlockState(spawnerState); spawnerItem.setItemMeta(meta); block.getWorld().dropItem(block.getLocation(), new ItemStack(Material.SPAWNER)); block.setType(Material.AIR); } } private boolean hasSilkTouch(ItemStack item){ return item != null && item.containsEnchantment(Enchantment.SILK_TOUCH); } @Override public void onDisable() { // Plugin shutdown logic } } Link to comment Share on other sites More sharing options...
boomer41 Posted July 7, 2023 Share Posted July 7, 2023 Am 6.7.2023 um 16:24 schrieb diordrip: spawnerItem.setItemMeta(meta); block.getWorld().dropItem(block.getLocation(), new ItemStack(Material.SPAWNER)); Das zu droppende Item wird zwar hergerichtet, aber effektiv gedroppt wird ein komplett anderes... => block.getWorld().dropItem(block.getLocation(), spawnerItem); 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now