md-5 / SpecialSource

Automatic generator and renamer of jar obfuscation mappings.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NPC plugin

VolanDeMor1 opened this issue · comments

Hello, I have a problem creating a plugin for the NPC spawn. There are no errors in the code, especially since I took the code from ready-made plugins. But at the same time, when I try to spawn the NPC, it throws me a huge stack of errors, which I don’t know how they are related to my plugin:

[15:03:14 ERROR]: Packet encoding of packet ID 54 threw (skippable? false)
java.lang.NullPointerException: Cannot invoke "String.getBytes(java.nio.charset.Charset)" because "string" is null
        at net.minecraft.network.FriendlyByteBuf.writeUtf(FriendlyByteBuf.java:550) ~[?:?]
        at net.minecraft.network.FriendlyByteBuf.writeUtf(FriendlyByteBuf.java:546) ~[?:?]
        at net.minecraft.network.protocol.game.ClientboundPlayerInfoPacket$Action$1.write(ClientboundPlayerInfoPacket.java:91) ~[?:?]
        at net.minecraft.network.FriendlyByteBuf.writeCollection(FriendlyByteBuf.java:134) ~[?:?]
        at net.minecraft.network.protocol.game.ClientboundPlayerInfoPacket.write(ClientboundPlayerInfoPacket.java:49) ~[?:?]
        at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:44) ~[patched_1.17.jar:git-Paper-79]
        at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:15) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:808) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) ~[patched_1.17.jar:git-Paper-79]
        at net.minecraft.network.Connection.a(Connection.java:315) ~[?:?]
        at net.minecraft.network.Connection.lambda$sendPacket$4(Connection.java:295) ~[?:?]
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[patched_1.17.jar:git-Paper-79]
        at java.lang.Thread.run(Thread.java:831) [?:?]
[15:03:14 ERROR]: Packet encoding of packet ID 54 threw (skippable? false)
java.lang.NullPointerException: Cannot invoke "String.getBytes(java.nio.charset.Charset)" because "string" is null
        at net.minecraft.network.FriendlyByteBuf.writeUtf(FriendlyByteBuf.java:550) ~[?:?]
        at net.minecraft.network.FriendlyByteBuf.writeUtf(FriendlyByteBuf.java:546) ~[?:?]
        at net.minecraft.network.protocol.game.ClientboundPlayerInfoPacket$Action$1.write(ClientboundPlayerInfoPacket.java:91) ~[?:?]
        at net.minecraft.network.FriendlyByteBuf.writeCollection(FriendlyByteBuf.java:134) ~[?:?]
        at net.minecraft.network.protocol.game.ClientboundPlayerInfoPacket.write(ClientboundPlayerInfoPacket.java:49) ~[?:?]
        at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:44) ~[patched_1.17.jar:git-Paper-79]
        at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:15) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:808) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) ~[patched_1.17.jar:git-Paper-79]
        at net.minecraft.network.Connection.a(Connection.java:315) ~[?:?]
        at net.minecraft.network.Connection.lambda$sendPacket$4(Connection.java:295) ~[?:?]
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[patched_1.17.jar:git-Paper-79]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[patched_1.17.jar:git-Paper-79]
        at java.lang.Thread.run(Thread.java:831) [?:?]
[15:03:14 INFO]: null lost connection: Internal Exception: io.netty.handler.codec.EncoderException: java.lang.NullPointerException: Cannot invoke "String.getBytes(java.nio.charset.Charset)" because "string" is null
[15:03:14 ERROR]: Encountered an unexpected exception
java.lang.NullPointerException: Cannot invoke "String.isEmpty()" because "content" is null
        at net.kyori.adventure.text.Component.text(Component.java:646) ~[patched_1.17.jar:git-Paper-79]
        at net.minecraft.server.players.PlayerList.disconnect(PlayerList.java:598) ~[patched_1.17.jar:git-Paper-79]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:1890) ~[?:?]
        at net.minecraft.network.Connection.handleDisconnection(Connection.java:564) ~[?:?]
        at net.minecraft.server.network.ServerConnectionListener.tick(ServerConnectionListener.java:216) ~[?:?]
        at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1576) ~[patched_1.17.jar:git-Paper-79]
        at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:477) ~[patched_1.17.jar:git-Paper-79]
        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1404) ~[patched_1.17.jar:git-Paper-79]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1180) ~[patched_1.17.jar:git-Paper-79]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[patched_1.17.jar:git-Paper-79]
        at java.lang.Thread.run(Thread.java:831) [?:?]

Here is my code:

public class NPC extends ServerPlayer {

    public NPC(MinecraftServer server, ServerLevel world, GameProfile profile, Location loc) {
        super(server, world, profile);
        this.setPos(loc.getX(), loc.getY(), loc.getZ());
        this.setRot(loc.getYaw(), loc.getPitch());
    }

    @Override
    public boolean isCreative() {
        return false;
    }

    @Override
    public boolean isSpectator() {
        return false;
    }

}

And then just:

GameProfile profile = new GameProfile(UUID.randomUUID(), "Man");
profile.getProperties().put("textures", new Property("textures", type.value, type.signature));
MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer();
ServerLevel world = ((CraftWorld) loc.getWorld()).getHandle();

NPC npc = new NPC(server, world, profile, loc);
Entity entity = npc.getBukkitEntity();
entity.setGravity(false);

can anyone help me?

commented

Unclear what this has to do with this project