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

Помогите проверка возможности установить блок, WG

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

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

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

    Баллы:
    61
    Имя в Minecraft:
    Zigo
    В чем суть: нужно проверить может ли игрок допустим установить блок на своих координатах.
    Всё
    А теперь суть всей идеи: допустим кто-то припёрся в чужой приват и тупо мешает. Теперь игрок может написать команду /phelnah <ник> и его тпхает на спавн и кикает с каким-то сообщением типа "Тебе тут не рады". но если игрок состоит в привате, или модер или админ, а у них есть возможность строить в привате, то игроки пишет ответ мол "Данного игрока нельзя прогнать". Но в чем фишка игрок должен сам мочь строить в том месте где стоит тот игрок которого он "посылает".
    И да я не силён в пунктуации и те запятые которые я пропустил оставлю здесь:",,,,,,,,,,,,,,,,," :lol:.
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    Zcrafts

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

    Баллы:
    61
    Имя в Minecraft:
    Zigo
    А, версия 1.7.10, буду тестировать на последнем термосе.
     
  4. AtomicInteger

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

    Баллы:
    46
    Подключение плагина WorldGuard:
    Код:
    private WorldGuardPlugin worldGuard = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");
    Проверка на возможность строить на location игрока:
    Код:
    worldGuard.canBuild(player, location) ;
    Дальше идёт обработка нужной команды с проверкой прав и телепортация с сообщением.
     
  5. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    А если тот игрок окажется совсем на другом регионе?)
     
  6. AtomicInteger

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

    Баллы:
    46
    То есть?Если можно, на примере, пожалуйста.
     
  7. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Ну ты проверил на canBuild и больше ничего.
     
  8. AtomicInteger

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

    Баллы:
    46
    Ну конечно, проверить местоположение нужно, но это я писать не стал, подумал и так всем ясно.
     
  9. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Потому, тут будет уместно так,

    ApplicableRegionSet set = wg.getRegionManager(world).getApplicableRegions(location);
    for(ProtectedRegion rg : set.getRegions()) {
    Наши действия
    }[DOUBLEPOST=1480874787,1480874551][/DOUBLEPOST]P.s так мы сможем проверить, послал ли его владелец того региона. Находится ли тот чел в том самом регионе, от куда его послали.
     
  10. AtomicInteger

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

    Баллы:
    46
    Да, верно, спасибо за дополнение.
     
  11. Автор темы
    Zcrafts

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

    Баллы:
    61
    Имя в Minecraft:
    Zigo
    фишка в том что нельзя прогнать того кто может строить в регионе, туда же входит модератор и администратор (у них пермишеном разрешено это), но при этом игрок написавший команду должен мочь строить в локации на кого направлена команда, но там будет небольшой костыль, дабы избежать ситуации незаприваченого мира игрок без прав, какой-то левый несуществующий =! может строить.
    КонструкцияНаЯзыкеПонятномуКаждому:
    Код:
    Эвент команды(Отправитель, Команда, аргументы[]){
        if(Команда == "послать" && отправитель является Игрок){
           Посланный = гетИгрокПоНику(аргументы[0]);
           Левыйигрок = гетИгрокПоНику("shkoloOlolosha");
           локация = Посланный.гетЛокация();
              if(можетстроить(Отправитель,локация)&&
                            !можетстроить(Посланный,локация)&&
                                     !можетстроить(Левыйигрок,локация)){
              послать(Посланный);
              }else{
                    Отправитель.сендинфо("Тебе нельзя этого делать");
              }
        }
    }
     
  12. AtomicInteger

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

    Баллы:
    46
    Слушай, выше приведены все ключевые моменты, которые необходимо учесть при реализации решения этой проблемы.Тебе остается лишь добавить несколько логических проверок и только всего.Если ты этого сделать не можешь, то лучше начать с чего-нибудь более простого.Рассчитывать на то что за тебя напишут готовый плагин, после того как выше привели все нужные моменты, которые нужно знать, так же не стоит.
     
  13. Автор темы
    Zcrafts

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

    Баллы:
    61
    Имя в Minecraft:
    Zigo
    Я и не прошу написать за меня, ну поскольку я подобного нигде не видел, хотя бы оно не мешало, может кто-то возьмёт на вооружение. Я это написал ради идеи, возможно, кто-то проработает этот функционал в каком-то другом более крупном плагине будет как маленькая фича.
    Закрыто.
     
Статус темы:
Закрыта.

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