mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
Creative items (#1013)
This commit is contained in:
parent
b103d86ff9
commit
5b1116b15a
2 changed files with 15 additions and 17 deletions
|
@ -234,9 +234,7 @@ public class GeyserSession implements CommandSender {
|
||||||
upstream.sendPacket(entityPacket);
|
upstream.sendPacket(entityPacket);
|
||||||
|
|
||||||
CreativeContentPacket creativePacket = new CreativeContentPacket();
|
CreativeContentPacket creativePacket = new CreativeContentPacket();
|
||||||
for (int i = 0; i < ItemRegistry.CREATIVE_ITEMS.length; i++) {
|
creativePacket.setContents(ItemRegistry.CREATIVE_ITEMS);
|
||||||
creativePacket.getEntries().put(i + 1, ItemRegistry.CREATIVE_ITEMS[i]);
|
|
||||||
}
|
|
||||||
upstream.sendPacket(creativePacket);
|
upstream.sendPacket(creativePacket);
|
||||||
|
|
||||||
PlayStatusPacket playStatusPacket = new PlayStatusPacket();
|
PlayStatusPacket playStatusPacket = new PlayStatusPacket();
|
||||||
|
|
|
@ -163,23 +163,23 @@ public class ItemRegistry {
|
||||||
throw new AssertionError(LanguageUtils.getLocaleStringLog("geyser.toolbox.fail.creative"), e);
|
throw new AssertionError(LanguageUtils.getLocaleStringLog("geyser.toolbox.fail.creative"), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int netId = 1;
|
||||||
List<ItemData> creativeItems = new ArrayList<>();
|
List<ItemData> creativeItems = new ArrayList<>();
|
||||||
for (JsonNode itemNode : creativeItemEntries) {
|
for (JsonNode itemNode : creativeItemEntries) {
|
||||||
short damage = 0;
|
try {
|
||||||
if (itemNode.has("damage")) {
|
short damage = 0;
|
||||||
damage = itemNode.get("damage").numberValue().shortValue();
|
NbtMap tag = null;
|
||||||
}
|
if (itemNode.has("damage")) {
|
||||||
if (itemNode.has("nbt_b64")) {
|
damage = itemNode.get("damage").numberValue().shortValue();
|
||||||
byte[] bytes = Base64.getDecoder().decode(itemNode.get("nbt_b64").asText());
|
|
||||||
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
|
|
||||||
try {
|
|
||||||
NbtMap tag = (NbtMap) NbtUtils.createReaderLE(bais).readTag();
|
|
||||||
creativeItems.add(ItemData.of(itemNode.get("id").asInt(), damage, 1, tag));
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
} else {
|
if (itemNode.has("nbt_b64")) {
|
||||||
creativeItems.add(ItemData.of(itemNode.get("id").asInt(), damage, 1));
|
byte[] bytes = Base64.getDecoder().decode(itemNode.get("nbt_b64").asText());
|
||||||
|
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
|
||||||
|
tag = (NbtMap) NbtUtils.createReaderLE(bais).readTag();
|
||||||
|
}
|
||||||
|
creativeItems.add(ItemData.fromNet(netId++, itemNode.get("id").asInt(), damage, 1, tag));
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CREATIVE_ITEMS = creativeItems.toArray(new ItemData[0]);
|
CREATIVE_ITEMS = creativeItems.toArray(new ItemData[0]);
|
||||||
|
|
Loading…
Reference in a new issue