Я пытаюсь создать плагин bukkit, и мне кажется, что я не могу найти никакой документации по этому поводу, но я видел это готово, как мне вводить команды в сообщение чата, которое пользователь может щелкнуть, чтобы выполнить команду на сервере, например «/ motd», в виде интерактивной ссылки, такой как URL-адрес

if (commandLabel.equalsIgnoreCase(«cmd») < player.sendMessage(«Pick a command: » + + «, » + ); >

Заменив «» и «», чтобы вывести что-то вроде этого:

И щелчок по ним выполнит команду на сервере как они. Как бы я это сделал?

Tony 24 Мар 2014 в 17:55

2 ответа

Лучший ответ

Сделать это можно так:

IChatBaseComponent comp = ChatSerializer .a(«>]>»); PacketPlayOutChat packet = new PacketPlayOutChat(comp, true); ((CraftPlayer) ).getHandle().playerConnection.sendPacket(packet);

Это отправит им сообщение, показывающее:

Choose one: MOTD

И когда пользователь щелкает MOTD , он запускает команду /motd как проигрыватель. Вот небольшая разбивка того, что мы на самом деле делаем:

Как скопировать текст и вставить в майнкрафт


IChatBaseComponent comp = ChatSerializer .a(» » + «»,»extra»:[» + «»,»clickEvent»:» + «»>>]>»); PacketPlayOutChat packet = new PacketPlayOutChat(comp, true); ((CraftPlayer) ).getHandle().playerConnection.sendPacket(packet);

Приведенный выше код отправит игроку:

И когда игрок нажимает

Они запустят команду , и поскольку она не начинается с префикса команды, / , это заставит их общаться в чате .

К сожалению, насколько мне известно, вы можете поместить только одно событие щелчка на сообщение, поэтому вам придется сделать что-то вроде этого:

Итак, вам нужно сделать, где переменная player — это игрок:

player.sendMessage(«Choose one:»); IChatBaseComponent comp = ChatSerializer .a(«>]>»); PacketPlayOutChat packet = new PacketPlayOutChat(comp, true); ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); IChatBaseComponent comp2 = ChatSerializer .a(«>]>»); PacketPlayOutChat packet2 = new PacketPlayOutChat(comp2, true); ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet2);

При щелчке по MOTD проигрывателем запускается /motd , а при щелчке по Mail запускается /mail .

В качестве примечания, вам нужно будет включить craftbukkit в свой путь сборки вместе с bukkit , чтобы сделать это

Community 20 Июн 2020 в 12:12

Это отлично работает, облом по поводу каждой строки, но это работает с крошечной модификацией, которую я отредактировал в вашем посте. с «комп»

24 Мар 2014 в 21:26

Или вы можете просто сделать это (я сделал свое, вы можете его отредактировать)

Run_command также можно заменить на Open URL.

Я нашел сайт, если вы застряли! Добрый день 🙂 http://minecraftjson.com/

Soner Gönül 11 Авг 2015 в 15:53

Как скопировать текст и ставить в майнкрафт или наоборот!

Используя командные блоки или вводя их самостоятельно в мире, это было бы хорошо, но я использовал bukkit api, так что в этом случае это было бы не очень полезно.

Источник: question-it.com

Как вставить ссылку в майнкрафт: Как вставить в майнкрафте — Dudom

Копирование и вставка с использованием буфера обмена Office

Excel для Microsoft 365 Word для Microsoft 365 PowerPoint для Microsoft 365 Access для Microsoft 365 Publisher для Microsoft 365 Excel для Microsoft 365 для Mac Word для Microsoft 365 для Mac Outlook для Microsoft 365 для Mac PowerPoint для Microsoft 365 для Mac Excel 2021 Word 2021 PowerPoint 2021 Access 2021 Publisher 2021 Excel 2021 for Mac Word 2021 for Mac Outlook 2021 for Mac PowerPoint 2021 for Mac Excel 2019 Word 2019 PowerPoint 2019 Access 2019 Publisher 2019 Excel 2019 для Mac Word 2019 для Mac Outlook 2019 для Mac PowerPoint 2019 для Mac Excel 2016 Word 2016 PowerPoint 2016 Access 2016 Publisher 2016 Excel 2016 для Mac Word 2016 для Mac Outlook 2016 для Mac PowerPoint 2016 для Mac Excel 2013 Word 2013 PowerPoint 2013 Access 2013 Publisher 2013 SharePoint Designer 2007 Excel 2010 Word 2010 Outlook 2010 PowerPoint 2010 Access 2010 Publisher 2010 Excel 2007 Word 2007 Outlook 2007 PowerPoint 2007 Access 2007 Publisher 2007 Еще. ..Меньше

Буфер обмера Office позволяет скопировать до 24 элементов из документов Office или других программ и вставить их в другой документ Office. Например, можно скопировать текст из сообщения электронной почты, данные из книги или таблицы и рисунок из презентации, а затем вставить их все в документ. С помощью буфера обмена Office скопированные элементы можно разместить в документе в нужном порядке.

Читайте также:  Как настроить проводник в Майнкрафте

При использовании области задач Буфер обмена можно вставлять не только последний скопированный или вырезанный объект. Область задач Буфер обмена содержит несколько последних изображений или текстовых фрагментов, которые вы копировали или вырезали.

Примечание: вы по-прежнему можете вырезать, копировать и вставлять фрагменты стандартным способом — с помощью кнопок на ленте или сочетаний клавиш CTRL+X (Вырезать), CTRL+C (Копировать) и CTRL+V (Вставить).

Открытие области задач «Буфер обмена» в приложениях Office

Чтобы открыть область задач Буфер обмена, откройте вкладку Главная, а затем нажмите кнопку вызова диалогового окна Буфер обмена. Дважды щелкните изображение или фрагмент текста, которые нужно вставить.

Примечание: Чтобы открыть область задач Буфер обмена в Outlook, в открытом сообщении откройте вкладку Сообщение, а затем в группе Буфер обмена нажмите кнопку вызова диалогового окна Буфер обмена.

Копирование и вставка нескольких элементов с использованием буфера обмена Office

  1. Откройте файл, из которого вы хотите скопировать элементы.
  2. Выберите первый элемент, который требуется скопировать, и нажмите клавиши CTRL+C.
  3. Продолжайте копировать элементы из того же или другого файла, пока не соберете все, которые вам нужны. В буфер обмена Office можно поместить до 24 элементов. При копировании двадцать пятого элемента первый элемент в буфере обмена Office удаляется. По мере добавления элементов в буфер обмена Office в области задач Буфер обмена появляются соответствующие записи. Новая запись всегда добавляется в начало. Каждая запись содержит значок, соответствующий исходной программе Office, а также фрагмент скопированного текста или эскиз скопированного рисунка.
  4. Щелкните место в документе, в которое необходимо вставить элементы. Собранные элементы можно вставить в любую программу Office.
  5. Выполните одно из указанных ниже действий.
  6. Чтобы вставить элементы по одному, в области задач Буфер обмена дважды щелкните каждый элемент, который вы хотите вставить.
  7. Чтобы вставить все скопированные элементы, в области задач Буфер обмена нажмите кнопку

Удаление элементов из буфера обмена Office

Элементы можно удалить из буфера обмена Office по одному или все сразу.

В области задач Буфер обмена выполните одно из указанных ниже действий.

  • Чтобы удалить один элемент, щелкните стрелку рядом с ним и выберите команду Удалить.
  • Чтобы удалить все элементы, нажмите кнопку Удалить все.

Настройка отображения буфера обмена в Office

Чтобы настроить способ отображения буфера обмена Office, нажмите кнопку Параметры в нижней части области задач.

Автоматическое отображение буфера обмена Office

Автоматическое отображение буфера обмена Office при копировании элементов.

Открывать буфер обмена Office при двойном нажатии CTRL+C

Автоматическое отображение буфера обмена Office при двойном нажатии клавиш CTRL+C.

Собирать данные без отображения буфера обмена Office

Автоматическое копирование элементов в буфер обмена Office без отображения области задач Буфер обмена.

Показать значок буфера обмена Office на панели задач

Отображение значка Буфер обмена Office в области состояния системной панели задач, когда буфер обмена Office активен. Этот параметр включен по умолчанию.

Показывать состояние около панели задач при копировании

Отображение сообщений о собранных элементах при их копировании в буфер обмена Office. По умолчанию этот параметр включен.

Буфер обмена — это место временного хранения данных (текст, рисунки и т.д.) на компьютере. Копируемый элемент содержится в буфере обмена до тех пор, пока не будет скопирован другой элемент или выключен компьютер. Это означает, что одни и те же данные можно несколько раз вставлять в разные приложения. В буфере обмена содержится элемент, скопированный последним.

На компьютере Mac невозможно просмотреть или очистить буфер обмена.

  1. Выберите данные, которые необходимо скопировать.
  2. На панели инструментов Стандартная нажмите кнопку Копировать .
  3. Щелкните там, куда необходимо вставить вырезанный скопированные данные.
  4. На панели инструментов Стандартная нажмите кнопку В . Кнопка Параметры в , которая отображается в документе, временная. Ее можно нажать, чтобы изменить форматирование вставляемого элемента. Чтобы отменить отображение этой кнопки, щелкните в любом другом месте документа, нажмите клавишу ESC или начните ввод. Советы:
    • Для копирования используется +C, а для вкладки В виде +V.
    • Для сохранения и повторного использования текста, даже после выключения компьютера, можно использовать альбом для вырезок.
    Читайте также:  Лучший minecraft 1 8

    Копирование и вставка в Office Web Apps

    HUAWEI Community — HUAWEI Community

    HUAWEI Community — HUAWEI Community

    Чтобы улучшить наш веб-сайт и сделать его удобнее для вас, мы используем файлы cookie. Продолжая его просматривать, вы принимаете нашу политику использования файлов cookie. Подробнее

    Для удобства используйте последнюю версию Internet Explorer или другой браузер.

    • Сообщество HUAWEI
    • Детали темы

    Источник: xn--80aahvkuapc1be.xn--p1ai

    [Кнопка-ссылка]

    Народ, тут дело нехитрое, я никак не могу найти, как сделать кнопку, которая будет перенаправлять на HTML страницу. Чую печенкой, что там 1 строчка всего.

    P.S Сделал предмет в моде, в котором есть кнопка, которая будет отправлять на подробный гайд по моду. Сюда, в раздел Готовые моды )

    Делаю воксельные(и не только) 3D-модели для ваших Minecraft проектов. Портфолио можете увидеть полистав группу моего мода Soviet Lab — все модели сделаны мной.

    Icosider

    Kotliner

    Администратор
    3,580 99 655
    Мда, то чувство когда до сих пор не научился пользоваться гуглом. ​

    this.buttonList.add(new GuiButton(14, this.width — 150, p_73969_1_ + p_73969_2_ * 2, 120, 20, «Май Супир Саит. 111»)); case 14: try < var2 = Class.forName(«java.awt.Desktop»); var3 = var2.getMethod(«getDesktop», new Class[0]).invoke((Object)null, new Object[0]); var2.getMethod(«browse», new Class[]).invoke(var3, new Object[]); > catch (Throwable var6) < logger.error(«Couldn’t open link», var6); >break;

    P.s. надеюсь вставлять данные примеры ты умеешь
    P.s.s. код под 1.7.10
    P.s.s.s. и не забывай, что Джордж Лукас сам себя не поставит. ​

    Maxik

    5,013 47 775

    Не открывается !! Заблокирован!! (http://porno***.com) :В

    Делаю воксельные(и не только) 3D-модели для ваших Minecraft проектов. Портфолио можете увидеть полистав группу моего мода Soviet Lab — все модели сделаны мной.

    Icosider

    Kotliner

    Администратор
    3,580 99 655
    Maxik001 написал(а):
    Не открывается !! Заблокирован!! (http://porno***.com) :В

    Ну на тебе другую, тык

    Maxik

    5,013 47 775
    WildHeart написал(а):
    Мда, то чувство когда до сих пор не научился пользоваться гуглом. ​

    this.buttonList.add(new GuiButton(14, this.width — 150, p_73969_1_ + p_73969_2_ * 2, 120, 20, «Май Супир Саит. 111»)); case 14: try < var2 = Class.forName(«java.awt.Desktop»); var3 = var2.getMethod(«getDesktop», new Class[0]).invoke((Object)null, new Object[0]); var2.getMethod(«browse», new Class[]).invoke(var3, new Object[]); > catch (Throwable var6) < logger.error(«Couldn’t open link», var6); >break;

    P.s. надеюсь вставлять данные примеры ты умеешь
    P.s.s. код под 1.7.10
    P.s.s.s. и не забывай, что Джордж Лукас сам себя не поставит. ​

    Да мне тут по сути одна строчка нужна

    [font=Monaco, Consolas, Courier, monospace] var2[/font] [font=Monaco, Consolas, Courier, monospace].getMethod(«browse», new Class[]).invoke(var3, new Object[]);[/font]

    Мне только вот интересно, что это за getMethod такой? Нигде нету его.

    Делаю воксельные(и не только) 3D-модели для ваших Minecraft проектов. Портфолио можете увидеть полистав группу моего мода Soviet Lab — все модели сделаны мной.

    Icosider

    Kotliner

    Администратор
    3,580 99 655

    Не получится у тебя сделать данный код в одну строку, getMetod в подтверждении нажатия на ссылку используется. Смотри GuiMainMenu метод confirmClicked

    Maxik

    5,013 47 775
    WildHeart написал(а):

    Не получится у тебя сделать данный код в одну строку, getMetod в подтверждении нажатия на ссылку используется. Смотри GuiMainMenu метод confirmClicked


    Вот это спасибо, мог бы сразу его скинуть.

    Делаю воксельные(и не только) 3D-модели для ваших Minecraft проектов. Портфолио можете увидеть полистав группу моего мода Soviet Lab — все модели сделаны мной.

    hohserg

    7,067 321 1,491

    У мя вопрос: зачем рефлексия?
    Нельзя просто вызвать?

    java.awt.Desktop.browse(java.awt.Desktop.getDesktop(new Object[0]),new Object[]);
    Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))

    Таумкрафт 6 — ураа!
    Пишу на Scala
    Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
    Test BB-code

    Читайте также:  Как уменьшить худ в Майнкрафте

    Maxik

    5,013 47 775
    hohserg написал(а):

    У мя вопрос: зачем рефлексия?
    Нельзя просто вызвать?

    java.awt.Desktop.browse(java.awt.Desktop.getDesktop(new Object[0]),new Object[]);

    Вот. Вот я это и хотел. Потому что раньше делал, в Паскале правда, а щас забыл)

    Токо вопрос. Он ругается на getDesktop и хочет внутри все аргументы удалить.

    Делаю воксельные(и не только) 3D-модели для ваших Minecraft проектов. Портфолио можете увидеть полистав группу моего мода Soviet Lab — все модели сделаны мной.

    Icosider

    Kotliner

    Администратор
    3,580 99 655
    hohserg написал(а):

    У мя вопрос: зачем рефлексия?
    Нельзя просто вызвать?

    java.awt.Desktop.browse(java.awt.Desktop.getDesktop(new Object[0]),new Object[]);

    Ща затестим, но если мне не изменяет память, то раньше был краш или что-то подобное.

    hohserg

    7,067 321 1,491

    А какая разница то? Вызов через рефлексию имеет смысл если у тебя не компилируется(либы нету нужной на момент компиляции)

    Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))

    Таумкрафт 6 — ураа!
    Пишу на Scala
    Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
    Test BB-code

    Icosider

    Kotliner

    Администратор
    3,580 99 655
    hohserg написал(а):

    А какая разница то? Вызов через рефлексию имеет смысл если у тебя не компилируется(либы нету нужной на момент компиляции)


    Ты это Mojang скажи. Порой и не такую херь найдёшь у них в коде.

    hohserg

    7,067 321 1,491
    На любой код нужно смотреть как на код, потенциально содержащий ошибки. Поэтому я и задал вопрос.
    Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))

    Таумкрафт 6 — ураа!
    Пишу на Scala
    Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
    Test BB-code

    Maxik

    5,013 47 775
    hohserg написал(а):
    На любой код нужно смотреть как на код, потенциально содержащий ошибки. Поэтому я и задал вопрос.
    Токо вопрос. Он ругается на getDesktop и хочет внутри все аргументы удалить.

    Я его прямо в экшперфоменс засадил, правильно сделал:?

    public void initGui() < this.buttonList.clear(); this.buttonList.add(this.infoBtn = new InfoButton(0, this.width / 2 + 0, this.height / 4 + 94, 32, 14, I18n.format(MushroomMain.MODID + «.infoBtn», new Object[0]))); >public void actionPerformed(GuiButton button) < if (button.enabled) < if (button.id == 0) < java.awt.Desktop.browse(java.awt.Desktop.getDesktop(new Object[0]),new Object[]); this.mc.displayGuiScreen((GuiScreen)null); > > >

    Делаю воксельные(и не только) 3D-модели для ваших Minecraft проектов. Портфолио можете увидеть полистав группу моего мода Soviet Lab — все модели сделаны мной.

    hohserg

    7,067 321 1,491
    Извини, чет не заметил этой части ответа, пересоберу среду и попробую
    Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))

    Таумкрафт 6 — ураа!
    Пишу на Scala
    Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
    Test BB-code

    Icosider

    Kotliner

    Администратор
    3,580 99 655

    Написал так:
    Desktop desk = Desktop.getDesktop();
    desk.browse(new URL(«http://site.ru»).toURI());
    ну и без рефлексии ругается на new URL.

    hohserg написал(а):
    На любой код нужно смотреть как на код, потенциально содержащий ошибки. Поэтому я и задал вопрос.
    Но не в релизной версии же.

    hohserg

    7,067 321 1,491

    «Но не в релизной версии же.»
    Да? А откуда дюпы, баги, которыми пестрит ю-туб и которые я сам иногда нахожу в процессе игры? Да и не всегда работающий код — лучший

    Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))

    Таумкрафт 6 — ураа!
    Пишу на Scala
    Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
    Test BB-code

    Icosider

    Kotliner

    Администратор
    3,580 99 655
    hohserg написал(а):

    «Но не в релизной версии же.»
    Да? А откуда дюпы, баги, которыми пестрит ю-туб и которые я сам иногда нахожу в процессе игры? Да и не всегда работающий код — лучший

    Дюпы? не видел, баги? возможно. Нет идеального кода, всё всегда исправляется. Возьмём даже исходники марсохода, которые выложили на гитхаб, так ведь нашлись и ошибки, и прочая херь и комьюнити фиксит. Они этот URI не исправляют со времён 1.4.6(а то и раньше), он как был через рефлексию, так и остался.

    Источник: forum.mcmodding.ru