Ich entwickle meine eigene Version eines Minecraft -Servers mithilfe der Netty -Bibliothek.
Nach dem Implementieren aller Handshake -Materie stecke ich beim Senden des Registrierungsdatenpakets fest. Paketstruktur von 'Registry Data'. Der Code, den ich verwende, um diese Registrierung an den Client zu senden: < /p>
Ich entwickle meine eigene Version eines Minecraft -Servers mithilfe der Netty -Bibliothek. Nach dem Implementieren aller Handshake -Materie stecke ich beim Senden des Registrierungsdatenpakets fest. Paketstruktur von 'Registry Data'. Der Code, den ich verwende, um diese Registrierung an den Client zu senden: < /p> [code]private void sendBannerPatternRegistry(Channel client) { ByteBuf bannerPatternRegistry = Unpooled.buffer();
this.writeVarInt(bannerPatternRegistry, 0x07); // the id of the 'Registry Data' packet
this.writeString(bannerPatternRegistry, "minecraft:banner_pattern"); // the 'Registry ID'
// And now, we have a 'Prefixed Array' with all registry values
this.writeVarInt(bannerPatternRegistry, 1); // Here is a length of 'Prefixed Array'. It's 1 because we add only one value
// Now, we have to add the Id of registry entry this.writeString(bannerPatternRegistry, "minecraft:base");
// And here, we have to add the data of registry, witch it's 'Prefixed Optional NBT'
this.writeBoolean(bannerPatternRegistry, true); // This means that our value is present
Map bannerPatternData = new HashMap(); bannerPatternData.put("asset_id", "minecraft:diagonal_left"); bannerPatternData.put("translation_key", "block.minecraft.banner.diagonal_left.blue");
this.writeCompoundTag(bannerPatternRegistry, "", bannerPatternData); // Here we write the NBT data
client.writeAndFlush(bannerPatternData); } < /code> Hier sind alle Methoden, die ich verwende: < /p> public final void writeVarInt(ByteBuf buf, int value) { while ((value & 0xFFFFFF80) != 0L) { buf.writeByte((value & 0x7F) | 0x80); value >>>= 7; } buf.writeByte(value & 0x7F); }
public final void writeString(ByteBuf buf, String value) { byte[] bytes = value.getBytes(StandardCharsets.UTF_8); if (bytes.length > 32767 * 4) { throw new RuntimeException("String too long"); } this.writeVarInt(buf, bytes.length); buf.writeBytes(bytes); }
public final void writeBoolean(ByteBuf buf, boolean value) { buf.writeBoolean(value); } < /code> Und hier sind alle Methoden, die ich verwenden kann, um NBT und zu verzeichnen: < /p> private void writeTagHeader(ByteBuf out, TagType type, String name) { out.writeByte(type.getId()); if (type != TagType.END) { this.writeString(out, name); } }
private final int id; TagType(int id) { this.id = id; } public int getId() { return id; } } [/code] And, now, when I send this packet, I get the following error: [img]https://i.sstatic.net/QwIhrGnZ.png[/img]
Can someone help me with this error? Was habe ich falsch gemacht? Kann mir jemand mit einem Code -Beispiel helfen?
Ich versuche, einen Block zu erstellen, der mich in eine neue Dimension sendet, aber wenn ich versuche, mit der rechten Maustaste darauf zu klicken, passiert nichts. Im Moment verwende ich:
public...
Ich teste gerade das R5R-Paket, um die Reisezeitmatrix mit expanded_travel_time_matrix () zu berechnen, die die Reisezeitmatrizen zwischen Ursprungszielpaaren mit zusätzlichen Informationen wie...
Ich unterstütze ein MVC5-basiertes Webprojekt in Visual Studio 2022. Ich versuche, Singalr-Unterstützung hinzuzufügen, und folge den Anweisungen unter (und sind weitaus wiederholt an anderen Orten)....