- Баллы
- 76
- Имя в Minecraft
- EnderBro3D
Доброго времени суток, форумчане.
Дело в том что у меня не работает функция:
npc.getItemInMainHand().setItem(Item.getById(1));
Пишет в консоль вот это:
Код который я пишу:
P.S
Дело в том что у меня не работает функция:
npc.getItemInMainHand().setItem(Item.getById(1));
Пишет в консоль вот это:
Код:
[21:10:49 INFO]: EnderBro3D issued server command: /servernpc notch 1
[21:10:49 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'servernpc' in plugin LobbyXCore v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[core.jar:git-Spigot-4af49dc-c5e9a16]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[core.jar:git-Spigot-4af49dc-c5e9a16]
at org.bukkit.craftbukkit.v1_9_R2.CraftServer.dispatchCommand(CraftServer.java:645) ~[core.jar:git-Spigot-4af49dc-c5e9a16]
at net.minecraft.server.v1_9_R2.PlayerConnection.handleCommand(PlayerConnection.java:1349) [core.jar:git-Spigot-4af49dc-c5e9a16]
at net.minecraft.server.v1_9_R2.PlayerConnection.a(PlayerConnection.java:1184) [core.jar:git-Spigot-4af49dc-c5e9a16]
at net.minecraft.server.v1_9_R2.PacketPlayInChat.a(PacketPlayInChat.java:45) [core.jar:git-Spigot-4af49dc-c5e9a16]
at net.minecraft.server.v1_9_R2.PacketPlayInChat.a(PacketPlayInChat.java:1) [core.jar:git-Spigot-4af49dc-c5e9a16]
at net.minecraft.server.v1_9_R2.PlayerConnectionUtils$1.run(SourceFile:13) [core.jar:git-Spigot-4af49dc-c5e9a16]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_111]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_111]
at net.minecraft.server.v1_9_R2.SystemUtils.a(SourceFile:45) [core.jar:git-Spigot-4af49dc-c5e9a16]
at net.minecraft.server.v1_9_R2.MinecraftServer.D(MinecraftServer.java:726) [core.jar:git-Spigot-4af49dc-c5e9a16]
at net.minecraft.server.v1_9_R2.DedicatedServer.D(DedicatedServer.java:399) [core.jar:git-Spigot-4af49dc-c5e9a16]
at net.minecraft.server.v1_9_R2.MinecraftServer.C(MinecraftServer.java:665) [core.jar:git-Spigot-4af49dc-c5e9a16]
at net.minecraft.server.v1_9_R2.MinecraftServer.run(MinecraftServer.java:564) [core.jar:git-Spigot-4af49dc-c5e9a16]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_111]
Caused by: java.lang.NullPointerException
at ru.EnderBro3D.lobbycore.LobbyCore.onCommand(LobbyCore.java:126) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[core.jar:git-Spigot-4af49dc-c5e9a16]
... 15 more
>
Код который я пишу:
Java:
Player c = (Player) sender;
MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer();
WorldServer world = ((CraftWorld) Bukkit.getServer().getWorlds().get(0)).getHandle();
GameProfile profile = new GameProfile(UUID.randomUUID(), ChatColor.translateAlternateColorCodes('&', args[0]));
EntityPlayer npc = new EntityPlayer(server, world, profile, new PlayerInteractManager(world));
npc.teleportTo(c.getLocation(), false);
PlayerConnection connection = ((CraftPlayer) c).getHandle().playerConnection;
connection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, npc));
connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
connection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TITLE, ChatSerializer.a("{\"text\":\"Новый NCP создан!\"}")));
npc.getItemInMainHand().setItem(Item.getById(Integer.parseInt(args[1])));
Java:
package ru.EnderBro3D.lobbycore;
import java.io.File;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.craftbukkit.v1_9_R2.CraftServer;
import org.bukkit.craftbukkit.v1_9_R2.CraftWorld;
import org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitScheduler;
import com.mojang.authlib.GameProfile;
import net.milkbowl.vault.economy.Economy;
import net.minecraft.server.v1_9_R2.EntityPlayer;
import net.minecraft.server.v1_9_R2.IChatBaseComponent.ChatSerializer;
import net.minecraft.server.v1_9_R2.Item;
import net.minecraft.server.v1_9_R2.MinecraftServer;
import net.minecraft.server.v1_9_R2.PacketPlayOutNamedEntitySpawn;
import net.minecraft.server.v1_9_R2.PacketPlayOutPlayerInfo;
import net.minecraft.server.v1_9_R2.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
import net.minecraft.server.v1_9_R2.PacketPlayOutTitle;
import net.minecraft.server.v1_9_R2.PacketPlayOutTitle.EnumTitleAction;
import net.minecraft.server.v1_9_R2.PlayerConnection;
import net.minecraft.server.v1_9_R2.PlayerInteractManager;
import net.minecraft.server.v1_9_R2.WorldServer;
public class LobbyCore extends JavaPlugin implements Listener {
private static Economy econ = null;
private static int task;
private static YamlConfiguration config;
private LobbyCoreAPI api;
public static Economy getEcon() {
return econ;
}
private boolean setupEconomy()
{
RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
if (economyProvider != null) {
econ = economyProvider.getProvider();
}
return (econ != null);
}
//OnEnable
@Override
public void onEnable() {
api = new LobbyCoreAPI();
if(setupEconomy() == false) {
getLogger().severe("Please setup a economy plugin!");
return;
}
PluginManager pm = Bukkit.getPluginManager();
pm.registerEvents(new EventListener(), this);
BukkitScheduler s = Bukkit.getScheduler();
long interval = 10 * 20;
task = s.scheduleSyncRepeatingTask(this, new Runnable() {
@Override
public void run() {
if(Bukkit.getOnlinePlayers()==null) return;
for(Player player:Bukkit.getOnlinePlayers()) {
api.setScoreboard(player);
}
}
}, 0L, interval);
File cfgFile = new File(getDataFolder(), "config.yml");
if(cfgFile.exists()) config.options().copyDefaults(true);
}
//OnDisable
@Override
public void onDisable() {
BukkitScheduler s = Bukkit.getScheduler();
s.cancelTask(task);
}
//OnCommand
@SuppressWarnings("deprecation")
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(cmd.getName().equalsIgnoreCase("ServerNPC")) {
if(!sender.hasPermission("LobbyCore.ServerNPC")) {
sender.sendMessage("\u00a7cНедостаточно прав!");
return false;
}
if(args.length != 2) {
sender.sendMessage("\u00a7cНедостаточно аргументов: <name> <ItemID>!");
return false;
}
if(!(sender instanceof Player)) {
sender.sendMessage("\u00a7cТолько для игроков!");
return false;
}
Player c = (Player) sender;
MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer();
WorldServer world = ((CraftWorld) Bukkit.getServer().getWorlds().get(0)).getHandle();
GameProfile profile = new GameProfile(UUID.randomUUID(), ChatColor.translateAlternateColorCodes('&', args[0]));
EntityPlayer npc = new EntityPlayer(server, world, profile, new PlayerInteractManager(world));
npc.teleportTo(c.getLocation(), false);
PlayerConnection connection = ((CraftPlayer) c).getHandle().playerConnection;
connection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, npc));
connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
connection.sendPacket(new PacketPlayOutTitle(EnumTitleAction.TITLE, ChatSerializer.a("{\"text\":\"Новый NCP создан!\"}")));
npc.getItemInMainHand().setItem(Item.getById(Integer.parseInt(args[1])));
}
return false;
}
}
В net.minecraft.server я первый раз, чаще я в org.bukkit, так что я могу очень много сделать ошибок

