TntTastisch
Kuhfänger
Hey,
ich programmiere derzeitig ein NPC Plugin für die Version 1.12.2 doch wenn ich den Spawn Befehl ausführe für das Entity kommt eine Fehlermeldung könnt ihr mir weiterhelfen?
Danke schon mal im vor raus!
ich programmiere derzeitig ein NPC Plugin für die Version 1.12.2 doch wenn ich den Spawn Befehl ausführe für das Entity kommt eine Fehlermeldung könnt ihr mir weiterhelfen?
Die Klasse für das Spawnen:
import com.mojang.authlib.GameProfile;
import net.minecraft.server.v1_12_R1.*;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_12_R1.CraftServer;
import org.bukkit.craftbukkit.v1_12_R1.CraftWorld;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
import java.lang.reflect.Field;
import java.util.UUID;
public class EntityAPI {
public static void spawn(Location loc, String name) {
MinecraftServer nmsServer = ((CraftServer) Bukkit.getServer()).getServer(); //NMS Server
WorldServer nmsWorld = ((CraftWorld) loc.getWorld()).getHandle(); //NMS World Server
GameProfile gp = new GameProfile(UUID.randomUUID(), name); //NMS Game Profile
EntityPlayer npc = new EntityPlayer(nmsServer, nmsWorld, gp, new PlayerInteractManager(nmsWorld));
npc.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
nmsWorld.addEntity(npc);
sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, npc));
sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, npc));
}
static void sendPacket(Packet<?> packet) {
for(Player p : Bukkit.getOnlinePlayers()) {
((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet);
}
}
public void setValue(Object obj,String name,Object value){
try{
Field field = obj.getClass().getDeclaredField(name);
field.setAccessible(true);
field.set(obj, value);
}catch(Exception e){
e.printStackTrace();
}
}
public Object getValue(Object obj,String name){
try {
Field field;
field = obj.getClass().getDeclaredField(name);
field.setAccessible(true);
return field.get(obj);
}catch(Exception e) {
e.printStackTrace();
}
return null;
}
}
Fehlermeldung:
[13:30:34] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.NullPointerException: null
at net.minecraft.server.v1_12_R1.EntityTrackerEntry.broadcastIncludingSelf(EntityTrackerEntry.java:300) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.EntityTrackerEntry.d(EntityTrackerEntry.java:278) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.EntityTrackerEntry.track(EntityTrackerEntry.java:207) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.EntityTracker.updatePlayers(EntityTracker.java:182) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:834) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_201]
Danke schon mal im vor raus!