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

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

Discussion in 'Разработка плагинов для новичков' started by Zcrafts, Dec 4, 2016.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Потому, тут будет уместно так,

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

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

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

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

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

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

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

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

    Trophy Points:
    61
    Имя в Minecraft:
    Zigo
    Я и не прошу написать за меня, ну поскольку я подобного нигде не видел, хотя бы оно не мешало, может кто-то возьмёт на вооружение. Я это написал ради идеи, возможно, кто-то проработает этот функционал в каком-то другом более крупном плагине будет как маленькая фича.
    Закрыто.
     
Thread Status:
Not open for further replies.

Share This Page