Wo ist das Problem, wenn die Spawner nicht am Boden sind?Guter Ansatz, aber das funktioniert leider nicht immer, da die Spawner nicht immer am Boden sind.
Ich bilde mir ein, es gibt dafür eine Einstellung in der spigot.yml oder in der bukkit.yml
Aber ich weiß nicht, wie die heißt.
package de.blockbreaker.lobby.api.nbt;
import net.minecraft.server.v1_8_R3.NBTTagCompound;
import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack;
import org.bukkit.inventory.ItemStack;
public class NBTUtil {
public static ItemStack setName(ItemStack bukkititem, String invname) {
net.minecraft.server.v1_8_R3.ItemStack item = CraftItemStack.asNMSCopy(bukkititem);
NBTTagCompound tag = item.hasTag() ? item.getTag() : new NBTTagCompound();
tag.setString("name-id", invname);
item.setTag(tag);
return CraftItemStack.asBukkitCopy(item);
}
public static boolean isItem(ItemStack bukkititem) {
net.minecraft.server.v1_8_R3.ItemStack item = CraftItemStack.asNMSCopy(bukkititem);
if(item.hasTag()) {
NBTTagCompound tag = item.getTag();
return tag.hasKey("name-id");
}
return false;
}
public static String getName(ItemStack bukkititem) {
net.minecraft.server.v1_8_R3.ItemStack item = CraftItemStack.asNMSCopy(bukkititem);
if(item.hasTag()) {
NBTTagCompound tag = item.getTag();
return tag.getString("name-id");
}
return null;
}
}
package de.blockbreaker.lobby.system.events;
import de.blockbreaker.lobby.api.nbt.NBTUtil;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
public class InventoryEvents implements Listener {
@EventHandler
public void onClick(InventoryClickEvent e) {
ItemStack item = e.getCurrentItem();
if(NBTUtil.isItem(item)) {
if(NBTUtil.getName(item).equals("nav")) {
e.setCancelled(true);
}
}
e.setCancelled(false);
}
}
Kommt darauf an wann die Kiste spawnen soll.Muss ich das in einem speziellen Event machen?
Stimmt, ich habe einen Denkfehler gemacht xD@EventHandler
public void join(PlayerJoinEvent event) {
Player player = event.getPlayer();
if(player.getWorld.getBlockAt(loc).equals(Material.QUARZ_BLOCK) {
player.getWorld().getBlockAt(loc).setType(Material.CHEST);
}
}