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

Помогите Вопросы по WorldGuard API

Discussion in 'Разработка плагинов для новичков' started by MaрШутЧик, Aug 1, 2016.

  1. This_is_GoOD

    This_is_GoOD Новичок Пользователь

    Trophy Points:
    21
    Ловишь PlayerMoveEvent тогда и e.setTo(e.setFrom); и он телепортируется назад[DOUBLEPOST=1470042284,1470042237][/DOUBLEPOST]
    Так чем она лучше моей?
     
  2. Хостинг MineCraft
    <
  3. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Ну если мечтаешь убить тпс, то мове ивент доя тебя. Такое лучше по таймеру проверять.
     
  4. Автор темы
    MaрШутЧик

    MaрШутЧик Новичок Пользователь

    Trophy Points:
    21
    Имя в Minecraft:
    serega100
    А теперь русским языком
     
  5. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    BukkitRunnable
     
  6. xDark

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    о мой бог бл**ь.
    Если вызывать PlayerMoveEvent СЛИШКОМ ЧАСТО, то у тебя сервер будет лагать
     
  7. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Тут не в частоте дело. А в овербольшом листе регионов, который будет вайл труе при движение каждого игрока.
     
  8. This_is_GoOD

    This_is_GoOD Новичок Пользователь

    Trophy Points:
    21
    Это да.[DOUBLEPOST=1470044350,1470044039][/DOUBLEPOST]
    Вы все-таки очень умный.. Ивенты вызывает сервер, плагин их слушает.(Можно вроде вызвать и плагином, но не в данном случае) А лагает из за того, что при каждом движении игрока будет идти проверка на регион(Как уже сказал alexandrage). Нагрузку можно сильно убавить, если проверять это только тогда, когда игрок переходит с блока на блок, но это тоже будет сложно для сервера.
     
  9. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Вот почему лучше шедулер раз в N секунд запускать.
     
  10. This_is_GoOD

    This_is_GoOD Новичок Пользователь

    Trophy Points:
    21
    Да) Но там нужно будет немного больше кода, ну и головой больше подумать. Просто игрок может просто пробежать регион, если таймер не успеет. Потом еще нужно куда-то его телепортировать, а локацию где-то брать нужно, но это тоже решаемо.
     
  11. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    С региона и брать локацию. И я не думаю что игрок далеко убежит за пару сек.
     
  12. Автор темы
    MaрШутЧик

    MaрШутЧик Новичок Пользователь

    Trophy Points:
    21
    Имя в Minecraft:
    serega100
    +
    Можно дать нормальный код, я тоже могу себе ответить ссылкой на мануал
     
  13. This_is_GoOD

    This_is_GoOD Новичок Пользователь

    Trophy Points:
    21
    Вам дать код проверки через шедулер?
     
  14. Автор темы
    MaрШутЧик

    MaрШутЧик Новичок Пользователь

    Trophy Points:
    21
    Имя в Minecraft:
    serega100
     
  15. This_is_GoOD

    This_is_GoOD Новичок Пользователь

    Trophy Points:
    21
    Я не дам вам готовый плагин! Я дал вам проверку, парни подсказали когда лучше проверять и как тпхать назад. Теперь сами!
    P.S. Если что мы подскажем.
     
  16. Автор темы
    MaрШутЧик

    MaрШутЧик Новичок Пользователь

    Trophy Points:
    21
    Имя в Minecraft:
    serega100
    Разделы умею читать, ща попробую сам что-нибудь написать в эклипсе.[DOUBLEPOST=1470047655,1470047263][/DOUBLEPOST]Ребят, я создал WGapi.java
    Code:
    package me.serega100.expelling;
    
    import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
    import com.sk89q.worldguard.protection.ApplicableRegionSet;
    import com.sk89q.worldguard.protection.managers.RegionManager;
    import com.sk89q.worldguard.protection.regions.ProtectedRegion;
    import java.util.Iterator;
    import java.util.List;
    import org.bukkit.Location;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import pl.invcheckrg.InvCheckRG;
    public class WGapi extends JavaPlugin implements Listener
    {
      private WorldGuardPlugin myWorldGuardPlugin;
      public WGapi(Plugin wg)
      {
        this.myWorldGuardPlugin = ((WorldGuardPlugin)wg);
      }
      public ProtectedRegion getRegion(Location loc)
      {
        ApplicableRegionSet set = this.myWorldGuardPlugin.getRegionManager(loc.getWorld()).getApplicableRegions(loc);
        Iterator it = set.iterator();
        while (it.hasNext())
        {
          ProtectedRegion each = (ProtectedRegion)it.next();
          if (each != null) {
            return each;
          }
        }
        return null;
      }
    }
    
    Как к нему обращаться с главного класса(mainClass.java)?[DOUBLEPOST=1470048706][/DOUBLEPOST]
    (я походу всем надоел)
     
  17. Mr_RoboMan

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

    Trophy Points:
    123
    (ты прав)
     
  18. xDark

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    extends JavaPlugin inplements Listener - зачем, Карл..
     
  19. Автор темы
    MaрШутЧик

    MaрШутЧик Новичок Пользователь

    Trophy Points:
    21
    Имя в Minecraft:
    serega100
    ЕвентХандлер робить не будет
     
  20. This_is_GoOD

    This_is_GoOD Новичок Пользователь

    Trophy Points:
    21
    Он будет работать.
    В главном классе getServer().getPluginManager().registerEvents(new Wgapi(pl), this);
    И убери там extends JavaPlugin
     
  21. Автор темы
    MaрШутЧик

    MaрШутЧик Новичок Пользователь

    Trophy Points:
    21
    Имя в Minecraft:
    serega100
    Что за pl??? У меня эклипс на импорт и на getServer().getPluginManager().registerEvents(new Wgapi(pl), this); жалуется.
     

Share This Page