• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot NPC 1.12.2 programieren

TntTastisch

Kuhfänger
Mitglied seit
26 März 2018
Beiträge
53
Alter
19
Minecraft
TntTastisch
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?



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!
 
Allgemein
Hilfe Benutzer
  • maybeto maybeto:
    und die Tür kann man auch ganz sicher wieder von innen öffnen mit "Tür geh auf"?
  • HardSoul HardSoul:
    Ne, aber die Tür hört auf "Alexa" ;) damit geht sie sicher auf. Das laute Geräusch eine stahlriegels kann hierbei ignoriert werden
  • Stern☆ Stern☆:
    Klar! Hier ist ein Schloss aufgemalt. Siehst du nicht?
  • maybeto maybeto:
    aufgemalt :D Gottseidank hab ich immer nen Radiergummi einstecken
  • Stern☆ Stern☆:
    Für was?! :eek:
  • HardSoul HardSoul:
    Aber das ist die geheimwaffe: Permanentmarker
  • maybeto maybeto:
    booaahhh, @HardSoul
    du bist so ein Spielverderber.......
  • HardSoul HardSoul:
    Sorry...
  • maybeto maybeto:
    @Stern☆ hast du noch connection zu der Hundefutterfabrik? Entsorgen die noch unauffällig Spielverderber?
  • HardSoul HardSoul:
    Jetzt will ich es auch wissen. Was wird meine Strafe für meine schändliche Tat sein?
  • maybeto maybeto:
    vermutlich wird dich @Stern☆ morgen zum Eisessen abholen....
  • HardSoul HardSoul:
    Nein! Alles nur das nicht! Steht der Deal mit der Hundefutterfabrik noch?
  • maybeto maybeto:
    kurze Frage, hast du nen Teppich, 2m lang und etwa 3 mal deinen Körperumfang breit zu Hause?
  • HardSoul HardSoul:
    Leider nein :(
  • HardSoul HardSoul:
    Aber eine passende Plastikplane
  • maybeto maybeto:
    gut, notiere: Transportsicherung ist mitzubringen.....
  • HardSoul HardSoul:
    Spanngurte Und Paletten, sowie ausreichend seil und/oder Karton ist vorhanden :)
  • maybeto maybeto:
    vermutlich reicht ein Eimer mit Deckel....
  • HardSoul HardSoul:
    5 oder 10 Liter?
  • maybeto maybeto:
    10 Liter sollten reichen, das ist ein guter Gartenhäcksler...
  • Stern☆ Stern☆:
    Wer will in die Hundefutterfabrik?
  • maybeto maybeto:
    na der Spielverderber
  • HardSoul HardSoul:
    <- der da!
  • maybeto maybeto:
    so, ab jetzt übernimmt @Stern☆ ich hab damit nichts zu tun, war niemals hier, mich gibts vermutlich nicht mal.....
  • Stern☆ Stern☆:
    Gut! Du musst einfach nur durch den Trichter da durchgehen :)
    Stern☆ Stern☆: Gut! Du musst einfach nur durch den Trichter da durchgehen :)
    Oben