Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Для "Craft" штук тебе нужно CraftBukkit как либу подтянуть.У меня есть ItemStack и мне надо отправить его после текста. Как это сделать?
Я пытался найти код в инете и нашёл, но почему-то не импорит CraftItemStack. Версия 1.12.2
Посмотреть вложение 54133
Посмотреть вложение 54135
CraftBukkit нельзя распространять публично, отсюда его нет там в репозитории.
Я уже забилдил ядро, теперь работает, спасибо!Здесь можно запилить без подключения CraftBukkit, используя рефлекцию, нашел неплохой туториал включающий все этапы:
https://www.spigotmc.org/threads/tut-item-tooltips-with-the-chatcomponent-api.65964/
И ещё как сделать в 1 строке всё?CraftBukkit нельзя распространять публично, отсюда его нет там в репозитории.
Ты должен забилдить ядро через BuildTools и подключить его как обычную библиотеку, без Maven.
Либо создавай где то свой закрытый репозиторий и пихай туда скомпиленное ядро.
хрень какую-то скинул.Здесь можно запилить без подключения CraftBukkit, используя рефлекцию, нашел неплохой туториал включающий все этапы:
https://www.spigotmc.org/threads/tut-item-tooltips-with-the-chatcomponent-api.65964/
Потому что там декомпильнутые исходники майна.А почему CraftBukkit нельзя распространять публично?
Почему?хрень какую-то скинул.
Ну оч ****ый пример использования рефлексии)Почему?
Прикол в том, что предмет нужно пихать в Json формате в TextComponent, ибо никак иначе.Ну оч ****ый пример использования рефлексии)
Ну и к тому же в дефолтном TextComponent api есть показ предмета.
Я сейчас чёт рандомно накликал и оно заработало XDА куда это всё пихать, чтобы в 1 пакете всё шло? Посмотреть вложение 54139
net.minecraft.server.v1_12_R1.ItemStack nms = CraftItemStack.asNMSCopy(clicked);
IChatBaseComponent s = new ChatComponentText("§7Игрок " + player.getName() + " в " + player.getGameMode().name() + " кликнул на: ").addSibling(nms.C());
PacketPlayOutChat packet = new PacketPlayOutChat(s);
((CraftPlayer) onLooker).getHandle().playerConnection.sendPacket(packet);
И ещё как сделать в 1 строке всё?
http://rubukkit.org/threads/kak-otpravit-paket-v-odnoj-stroke-s-soobscheniem.100679/#post-1143373 есть тема, но я не понял, как это сделать
public static void send(Player sender, Player target, ItemStack item) {
net.minecraft.server.v1_14_R1.ItemStack nms = CraftItemStack.asNMSCopy(item);
IChatBaseComponent bc = new ChatComponentText("§6" + sender.getName() + "§5 показал вам: ");
bc.addSibling(nms.B());
PacketPlayOutChat packet = new PacketPlayOutChat(bc);
((CraftPlayer) target).getHandle().playerConnection.sendPacket(packet);
}
Это круто, когда у самого итемстака нет апи на это.Ну и к тому же в дефолтном TextComponent api есть показ предмета.
У меня есть ItemStack и мне надо отправить его после текста. Как это сделать?
Я пытался найти код в инете и нашёл, но почему-то не импорит CraftItemStack. Версия 1.12.2
Посмотреть вложение 54133
Посмотреть вложение 54135
net.minecraft.server.v1_12_R1.ItemStack mcItem = CraftItemStack.asNMSCopy(ItemStack);
NBTTagCompound nbt = new NBTTagCompound();
mcItem.save(nbt);
ChatComponentText main = new ChatComponentText("item");
ChatModifier modifier = main.getChatModifier();
modifier.setChatHoverable(new ChatHoverable(ChatHoverable.EnumHoverAction.SHOW_ITEM, new ChatComponentText(nbt.toString())));
main.setChatModifier(modifier);
PlayerList playerList = MinecraftServer.getServer().getPlayerList();
EntityPlayer ep = playerList.getPlayer(playerName);
if (ep != null) {
ep.sendMessage(main);
}
Ну рофл да)Это круто, когда у самого итемстака нет апи на это.
Кроме "супер пупер красоты" кода она ничем не отличается от использования ее через какой нибудь враппер.Ну рофл да)
В любом случае там оч уе*ищная работа с рефлексией.
Ну так челик не сделает этого, он сделает все по тутору без кеширования и с этим уе*ищным юзлесс классом RefletionUtil, который почему-то все дауны везде суют. Надо делать по-нормальному, кэшируя и через MethodHandle, он намного быстрее.Кроме "супер пупер красоты" кода она ничем не отличается от использования ее через какой нибудь враппер.
Показали напрямую, как что куда вызывается, чем плохо? Если кто захочет себе упростить, пусть пишет враппер и упрощает на свой вкус. У каждого он разный и у каждого будет свой подход.