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

Помогите Как правильно получить и проверить блоки?

Discussion in 'Разработка плагинов для новичков' started by Mr_RoboMan, Apr 30, 2015.

Thread Status:
Not open for further replies.
  1. Автор темы
    Mr_RoboMan

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

    Trophy Points:
    123
    У меня есть BlockPlaceEvent. Мне надо проверить (получить) блоки по всем 4 сторонам (вверх-вниз не нужно). Как мне правильно (коротко) получить блоки по четырем сторонам? Пробовал сделать это сам, но там получался такой длинный и нечитаемый...
     
  2. Хостинг MineCraft
    <
  3. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Коорды блока +Х, -Х, +Z, -Z...
     
  4. Автор темы
    Mr_RoboMan

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

    Trophy Points:
    123
    Я так и сделал в принципе, но я думал есть способ получше...
     
  5. Shevchik

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

    Trophy Points:
    173
    Имя в Minecraft:
    _Shevchik_
    getRelative
     
  6. Автор темы
    Mr_RoboMan

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

    Trophy Points:
    123
    Я то думал шевчик не отвечает в темах недоразроботчиков...
    Хм, интересно, попробую :D[DOUBLEPOST=1430402452,1430395602][/DOUBLEPOST]Вот ито спамит консоль ащипками...
    Code:
        @EventHandler
        public void deleteUnlimitedChest(BlockPlaceEvent event) {
            if (event.getBlock().getTypeId() == 54) {
                if (!((Chest)event.getBlock()).getBlockInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', "&aКейс"))) {
                    Block blockzm1 = event.getBlock().getRelative(0, 0, -1);
                    Block blockzp1 = event.getBlock().getRelative(0, 0, +1);
                    Block blockxm1 = event.getBlock().getRelative(-1, 0, 0);
                    Block blockxp1 = event.getBlock().getRelative(+1, 0, 0);
                    Bukkit.broadcastMessage("Первый (Z m 1): " + blockzm1.getTypeId());
                    Bukkit.broadcastMessage("Второй: (Z p 1)" + blockzp1.getTypeId());
                    Bukkit.broadcastMessage("Третий: (X m 1)" + blockxm1.getTypeId());
                    Bukkit.broadcastMessage("Четвертый(X p 1): " + blockxp1.getTypeId());
                } else if (((Chest)event.getBlock()).getBlockInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', "&aКейс"))) {
    
                }
            }
        }
    
    [DOUBLEPOST=1430402503][/DOUBLEPOST]Я несильно понял как пользоваться методом, по этому решил методом тыка..
     
    Last edited: Apr 30, 2015
  7. Danil007524

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

    Trophy Points:
    76
    Хочешь сделать в своих кейсах, как на майнплексе? :)
     
  8. Автор темы
    Mr_RoboMan

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

    Trophy Points:
    123
    Нет, просто в моих кейсах есть небольшой баг (надеюсь сейчас о нем до фикса некто не узнает) и мне надо его исправить.[DOUBLEPOST=1430461523,1430408436][/DOUBLEPOST]
    Code:
    @EventHandler
        public void deleteUnlimitedChest(BlockPlaceEvent event) {
            Bukkit.broadcastMessage("1тест");
            if (event.getBlock().getTypeId() == 54) {
                Bukkit.broadcastMessage("2тест");
                if (!((Chest)event.getBlock().getState()).getInventory().getName().equals(ChatColor.translateAlternateColorCodes('&', "&aКейс"))) {
                    Bukkit.broadcastMessage("3тест");
    Если к "кейсу" поставить обычный сундук, то третий тест не пишется, и консоль спамит ошибками... В чем прикол? O,o
     
Thread Status:
Not open for further replies.

Share This Page