Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

[Решено]Запрос игроку

Тема в разделе "Разработка плагинов для новичков", создана пользователем VLnet, 13 авг 2015.

Статус темы:
Закрыта.
  1. Автор темы
    VLnet

    VLnet Участник Пользователь

    Баллы:
    36
    Skype:
    The_Vladimir_UA
    Кода у меня 1380 строчек, и куда его залить? =) (text component в ивенте входа игрока (скину))Вот импорты мои:
    Код:
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.World;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scheduler.BukkitRunnable;
    
    import net.md_5.bungee.api.ChatColor;
    import net.md_5.bungee.api.chat.ClickEvent;
    import net.md_5.bungee.api.chat.ComponentBuilder;
    import net.md_5.bungee.api.chat.HoverEvent;
    import net.md_5.bungee.api.chat.TextComponent;
    
    PlayerJoinEvent:
    Код:
        @EventHandler
        public void onJoin(PlayerJoinEvent e) {
            Player p = e.getPlayer();
            String n = e.getPlayer().getName().toLowerCase();
            if (!p.hasPlayedBefore()) {
                config.set("money.tea." + n, 0);
                p.sendMessage("Привествуем тебя на нашем серве");
                saveConfig();
            } else {
                if (e.getPlayer().getName().equalsIgnoreCase("vlnet")) {
                    //e.setJoinMessage("Приветсвуем бога VLnet!");
                } else {
                    e.setJoinMessage(n + " зашёл сюда");
                }
            }
    
            //e.getPlayer().sendRawMessage("test");
            TextComponent message111 = new TextComponent( "Click me" );
            message111.setClickEvent( new ClickEvent( ClickEvent.Action.OPEN_URL, "http://spigotmc.org" ) );
            message111.setHoverEvent( new HoverEvent( HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Goto the Spigot website!").create() ) );
            e.getPlayer().sendMessage( message111 + "");
        }

    PS: использую mcoffline, и потому понятия не имею какая версия стоит, вроде 1.8 spigot, сборка (если такая есть ваще) 18sp[DOUBLEPOST=1439553031][/DOUBLEPOST]На счёт ошибок и предов: нет, все чисто
     

    Вложения:

    Последнее редактирование: 14 авг 2015
  2. Хостинг MineCraft
    <
  3. _EnderWorld_

    _EnderWorld_ Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Странно , я использую spigot 1.8, и нету ошибок, ну я поищу ещё...
     
  4. MrTrojan

    MrTrojan Активный участник Пользователь

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    На этот сайт залей.[DOUBLEPOST=1439555953,1439555812][/DOUBLEPOST]
    У тебя с импортами проблемы, т.е с import net.md_5.bungee.api.*, ты же делаешь плагин не для BungeeCord.

    Удали эти импорты и заново всё импортируй (Ctrl + Shift + O английская).
     
  5. _EnderWorld_

    _EnderWorld_ Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Лол, у меня bungeecord api стоит.
     
  6. Автор темы
    VLnet

    VLnet Участник Пользователь

    Баллы:
    36
    Skype:
    The_Vladimir_UA
    Два окна высвечивается:[DOUBLEPOST=1439558113,1439556983][/DOUBLEPOST]Зделал мелкий плагин, дабы исключить ошибки в моем основном коде:
    http://pastebin.com/FG3LM1AL
    но отображает все также фигню (при установке блока)
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      265,5 КБ
      Просмотров:
      10
    • 2.png
      2.png
      Размер файла:
      246,8 КБ
      Просмотров:
      10
  7. _EnderWorld_

    _EnderWorld_ Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Steve
    На 1, выбирай со словом bukkit, на втором net.md_5....[DOUBLEPOST=1439558657][/DOUBLEPOST]
    Во первых, у тебя нету распознания блока в event handler, вот как надо
    Код:
    @EventHandler
    public void onBlockRemove(BlockPlaceEvent e ) {
           
              Block block = e.getBlock();                
              Location loc = block.getLocation();     // эти три строчки это стандарт
              Player p = e.getPlayer();                     
    
              if(block.getType()== Material.WORKBENCH) {     // узнаем что блок - это верстак
              // тут дальше код
                     TextComponent message111 =newTextComponent("Click me");
                     message111.setClickEvent(new ClickEvent( ClickEvent.Action.OPEN_URL, "http://spigotmc.org"));
                     message111.setHoverEvent(new HoverEvent( HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Goto the Spigot website!").create()));
                     e.getPlayer().sendMessage( message111 +"");
                     block.setType(Material.AIR);        // Блок будет заменен на воздух
    
    
              }
    }
    
    
    Как то так. Ещё слова в кавычках можешь цветными сделать с помощью chatcolor и параграфного знака.
     
    Последнее редактирование: 14 авг 2015
  8. MrTrojan

    MrTrojan Активный участник Пользователь

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    А ты тут при чём? Мы же @VLnet помогаем.[DOUBLEPOST=1439559394,1439559311][/DOUBLEPOST]
    Ты не подключил API, по этому TextComponent не можешь сделать.[DOUBLEPOST=1439559553][/DOUBLEPOST]
    т.е ты поставишь блок и заменишь на воздух, может ивент BlockBreakEvent?
     
  9. Автор темы
    VLnet

    VLnet Участник Пользователь

    Баллы:
    36
    Skype:
    The_Vladimir_UA
    Зделал мелкий плагин, дабы исключить ошибки в моем основном коде:
    http://pastebin.com/FG3LM1AL
    но отображает все также фигню (при установке блока)
    loc и p не используются,
    в TextComponent message111 =newTextComponent("Click me"); вы допустили ошибку, правильно = new TextComponent("Click me")
    опять же выводит фигню, мне кажется, что у message111 нужно вытащить что-то через .get... (чисто мое мнение)
    ps: ивент установки блока выбрал случайно, ради теста[DOUBLEPOST=1439559631,1439559567][/DOUBLEPOST]
    а какое api подключить то надо?
     
  10. _EnderWorld_

    _EnderWorld_ Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Я ему показал на его примере в pastebin.[DOUBLEPOST=1439560943][/DOUBLEPOST]
    loc и p можешь использовать добавив такое:
    Код:
    p.sendMessage("Твой текст, помимо TextComponent");
    p.playSound(p.getLocation(), Sound.LEVEL_UP, 1, 1);
    loc.                     // Точку убери и заного поставь, и посмотри что там можно добавить.
    
     
  11. Автор темы
    VLnet

    VLnet Участник Пользователь

    Баллы:
    36
    Skype:
    The_Vladimir_UA
    Случайно удалил сообщение,
    Отправка запроса, чтоб при нажатии "да" переходило на ссылку работает.(Player.spigot().sendMessage)
    Теперь мне нужно, чтоб при нажатии на да выполнялся мой java код
    message.setClickEvent(new ClickEvent( ClickEvent.Action.OPEN_URL, "http://spigotmc.org"));
    - пример без java кода
     
  12. MrTrojan

    MrTrojan Активный участник Пользователь

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    По моему так.
    Код:
    message.setClickEvent(код);
     
  13. Автор темы
    VLnet

    VLnet Участник Пользователь

    Баллы:
    36
    Skype:
    The_Vladimir_UA
    еклипс ругается, что вместо "код" должен быть "ClickEvent"[DOUBLEPOST=1439573133,1439572516][/DOUBLEPOST]Кстати, еще один вопрос (по командам):
    как засунуть в переменную типа String весь текст, кроме /<сама команда> <1 аргумент>.
    Например: игрок ввел /command arg меня зовут Вася
    и в переменную запихнулось только "меня зовут Вася"[DOUBLEPOST=1439628258][/DOUBLEPOST]С кодом внутри "tellraw" я разобрался, осталось только:
    как засунуть в переменную типа String весь текст, кроме /<сама команда> <1 аргумент>.
    Например: игрок ввел /command arg меня зовут Вася
    и в переменную запихнулось только "меня зовут Вася"
     
Статус темы:
Закрыта.

Поделиться этой страницей