- Баллы
- 98
- Имя в Minecraft
- Dymeth
Привет всем.
Нужен способ...
1) Создать энтити-модельку игрока (NPC)
2) Применить на неё NBT-теги, спаршеные из строки обычного майновского формата
3) Применить на неё скин по профилю (texture+signature)
4) Заставить её передвигаться его по заданной траектории
5) Желательно ещё, чтобы NPC автоматически поворачивались к игроку
Все 4 пункта совместить не удаётся, выходят только такие два варианта:
1) Создать через Citizens, применить скин, заставить передвигаться. А НБТ в пролёте, т.к. применяется через NMS, который в NPC от Citizens не катируется. По этой же причине нельзя применять скины из LibsDisguises
2) Создать зомби/жителя через Bukkit, отключить AI, применить скин через LibsDisguises, повесить NBT-теги. Передвижение по траектории в пролёте, т.к. в бакките нет данного функционала. Для передвижения предлагают использовать BKCommonLib, но проблема в том, что при замене EntityiController'а перестаёт работать setRemoveWhenFarAway (он же же setPersistent).
UPD: На новых версиях добавили апи для управления передвижением, хотя оно и не такое гибкое.
В распоряжении:
1) Paper 1.16.5
2) ProtocolLib последней версии
3) Citizens последнего билда под 1.16.5
4) BKCommonLib последнего билда под 1.16.5
5) LibsDisguises последнего билда под 1.16.5
При необходимости готов подключить дополнительные зависимости
Нужен способ...
1) Создать энтити-модельку игрока (NPC)
2) Применить на неё NBT-теги, спаршеные из строки обычного майновского формата
3) Применить на неё скин по профилю (texture+signature)
4) Заставить её передвигаться его по заданной траектории
5) Желательно ещё, чтобы NPC автоматически поворачивались к игроку
Все 4 пункта совместить не удаётся, выходят только такие два варианта:
1) Создать через Citizens, применить скин, заставить передвигаться. А НБТ в пролёте, т.к. применяется через NMS, который в NPC от Citizens не катируется. По этой же причине нельзя применять скины из LibsDisguises
2) Создать зомби/жителя через Bukkit, отключить AI, применить скин через LibsDisguises, повесить NBT-теги. Передвижение по траектории в пролёте, т.к. в бакките нет данного функционала. Для передвижения предлагают использовать BKCommonLib, но проблема в том, что при замене EntityiController'а перестаёт работать setRemoveWhenFarAway (он же же setPersistent).
UPD: На новых версиях добавили апи для управления передвижением, хотя оно и не такое гибкое.
В распоряжении:
1) Paper 1.16.5
2) ProtocolLib последней версии
3) Citizens последнего билда под 1.16.5
4) BKCommonLib последнего билда под 1.16.5
5) LibsDisguises последнего билда под 1.16.5
При необходимости готов подключить дополнительные зависимости
PHP:
>> String nbt;
Object nmsNbt = net.minecraft.server.VER.MojangsonParser.parse(nbt);
NbtBase<?> wrappedNbt = com.comphenix.protocol.wrappers.nbt.NbtFactory.fromNMSCompound(nmsNbt);
PHP:
>> org.bukkit.entity.Entity bukkitEntity;
net.minecraft.server.VER.Entity nmsEntity = ((org.bukkit.craftbukkit.VER.entity.CraftEntity) bukkitEntity).getHandle();
nmsEntity.a(wrappedNbt.getHandle());
PHP:
>> String texture; // base64
>> String signature;
com.comphenix.protocol.wrappers.WrappedGameProfile profile = new WrappedGameProfile(UUID.randomUUID(), ChatColor.RESET.toString());
profile.getProperties().put("textures", new WrappedSignedProperty("textures", texture, signature));
me.libraryaddict.disguise.disguisetypes.PlayerDisguise disguise = new PlayerDisguise(ChatColor.RESET.toString());
disguise.setSkin(profile);
Последнее редактирование: