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

Помогите Event'ы для клика по блоку

Discussion in 'Разработка плагинов для новичков' started by 2Redman, Oct 16, 2016.

  1. Автор темы
    2Redman

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

    Trophy Points:
    61
    Имя в Minecraft:
    2Redman
    Люди, делаю плуг на донат-кейсы, и мне нужно что-бы при нажатии на блок портала в энд исполнялась рандомная команда от имени консоли, пжлст скажите как это можно сделать
     
  2. Хостинг MineCraft
    <
  3. MOR_IV

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

    Trophy Points:
    88
    Имя в Minecraft:
    MOR_IV
    Нужно слушать PlayerInteractEvent. Ловим, проверяем Action(право, лево), берём блок по которому клик, проверяем на эндер портал, и делаем рандом команду по списку. Через Math.random вроде можно сделать рандом команду.
     
  4. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Trophy Points:
    123
    new Random().nextInt(list.size()) все-же проще (ИМХО) будет...
     
  5. MOR_IV

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

    Trophy Points:
    88
    Имя в Minecraft:
    MOR_IV
    Солидарен. Давно рандом не трогал. Подзабыл :nerd:
     
  6. Автор темы
    2Redman

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

    Trophy Points:
    61
    Имя в Minecraft:
    2Redman
    Можно поточнее пожалуйста.
    Вот код который я начал делать на счёт открытия, что туда дописать?
    Code:
    package ru.fantst.fcrates;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEvent;
    
    public class CaseOpen implements Listener {
       
        @EventHandler
        public void onPlayerInteract(PlayerInteractEvent e) {
            Player p = e.getPlayer();
               
        }
    
    }
    
    [DOUBLEPOST=1476617165,1476617132][/DOUBLEPOST]
    Просто плагинов подобного рода я ещё не делал
     
  7. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Trophy Points:
    123
    Очередной чувачек который низуя не смыслит не в джаве не в программировании вообще, и пытаюшийся писать плагины детектед....
    @Exception_Prototype а ты еще и предлагал писать туториал на русском блин... Чтоб таких как ТС было еще больше.. Мда
     
  8. Автор темы
    2Redman

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

    Trophy Points:
    61
    Имя в Minecraft:
    2Redman
    я тут немного полазил , попробовал сделать эвент клика по блоку, вот что получилось, но выдаёт ошибку.

    Code:
        @EventHandler
        public void onPlayerInteract(PlayerInteractEvent e) {
            Player p = e.getPlayer();
    
            if (e.getClickedBlock() != Material.ENDER_PORTAL_FRAME) return;
            MessageManager.getManager().msg(p, MessageType.INFO, "Ты открыл кейс");
    ошибка в строчке if (e.getClickedBlock() != Material.ENDER_PORTAL_FRAME) return;
    подскажите что и куда дописать пжлст
     
  9. MOR_IV

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

    Trophy Points:
    88
    Имя в Minecraft:
    MOR_IV
    PlayerInteractEvent охватывает все клики мышкой. Вам нужен клик по блоку. проверяйте e.getAction()
     
  10. Автор темы
    2Redman

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

    Trophy Points:
    61
    Имя в Minecraft:
    2Redman
    А с этого момента по подробнее пожалуйста
     
  11. slavik123123123

    slavik123123123 Старожил Пользователь

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Block block = e.getClickedBlock();
    if (block == null || block.getType() != Material.ENDER_PORTAL_FRAME) {return}
     
  12. Автор темы
    2Redman

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

    Trophy Points:
    61
    Имя в Minecraft:
    2Redman
    Ладно, за это спасибо, теперь спрашиваю 2 тему про которую я спрашивал в самом начале : как сделать что бы при нажатии на тот же ender_portal_frame выполнялась 1 из 5 вписанных мной команд?[DOUBLEPOST=1476623490,1476623422][/DOUBLEPOST]И при этом, выполнятся этот эвент должен только предметом который был получен командой созданной в самом плагине, т.е. что бы нельзя было тупо на наковальне переименовать крючёк в "Ключ от кейса" и спокойно его открыть
     
  13. slavik123123123

    slavik123123123 Старожил Пользователь

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    создаешь лист с командами. и через рандом получаешь команду
     
  14. Автор темы
    2Redman

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

    Trophy Points:
    61
    Имя в Minecraft:
    2Redman
     
  15. MOR_IV

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

    Trophy Points:
    88
    Имя в Minecraft:
    MOR_IV
    Смотря как создать предмет. Можно NBT в него записать. Типа Lore в itemMeta и её считывать
     
  16. Автор темы
    2Redman

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

    Trophy Points:
    61
    Имя в Minecraft:
    2Redman
    Ну например я хочу командой /getkey %player% выдавать игроку который будет системой автоматически указыватья в %player% , Крючёк с названием "Ключ от кейса", и что бы только им можно было кликнуть по порталу и тем самым активировать эвенты написанные в плагине
     
  17. _MediaNik_

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

    Trophy Points:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Нет бы по нормальному p.sendMessage();
     
  18. MOR_IV

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

    Trophy Points:
    88
    Имя в Minecraft:
    MOR_IV
    В его случает на дебаг проще выводить.
     
  19. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    С кейсами не все так просто, ибо в креативе их на изи дропят. Нужно создавать кейсы с уникальным уидом, писать уиды в некую базу (sqlite or mysql). Потом после юза выставлять уиду статус проюзали, чтоб кейс с таким номером больше не робил.
     
  20. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Trophy Points:
    123
    Это уже проблема тех говноедов админов которые продают креатив.
     
  21. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Пока есть спрос, будут и предложения. Бабло течет и не ипет никого.
     

Share This Page