好吧,所以我最近在bukkit开始的一个项目中遇到了这个问题。正如您将看到我定义了头部和所有内容,我设置了头部的所有者并应用它。但是当我在游戏中加载它显示正常的史蒂夫头!我想要它做的是当我执行命令“spawnmnz”它会产生一个与发送者/玩家(在这种情况下)头部的小兵!
package me.frostgamersa;
import net.minecraft.server.v1_8_R3.ItemSkull;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.SkullType;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.entity.Zombie;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.plugin.java.JavaPlugin;
public class NewMinion extends JavaPlugin {
String minion_name = "§3Minion §bSpawn §fEgg §8- §a[Spawned]";
@Override
public void onEnable() {
}
@Override
public void onDisable() {
}
@SuppressWarnings("deprecation")
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label,
String[] args) {
Player player = (Player) sender;
if (cmd.getName().equalsIgnoreCase("spawnmnz")){
World world = player.getWorld();
Location loc = player.getLocation();
ItemStack p_skull = new ItemStack(Material.SKULL_ITEM, 1, (short)
SkullType.PLAYER.ordinal());
SkullMeta sm = (SkullMeta) p_skull.getItemMeta();
sm.setOwner(player.getName());
p_skull.setItemMeta(sm);
Zombie minion = (Zombie) world.spawn(loc, Zombie.class);
minion.setBaby(true);
minion.setCustomName(minion_name);
minion.setCustomNameVisible(true);
minion.getEquipment().setHelmet(p_skull);
return true;
}
return false;
}
}
从玩家个人资料中获取皮肤值,然后将其设置在头骨项目中反射,如果您不清楚如何做到这一点,我将为您提供api;)
服务器是否有互联网连接?它必须从Mojang服务器下载皮肤。因此,它可能只需要一点时间让皮肤出现在头上。
ItemSkull的导入也很奇怪,你使用的是什么服务器版本?