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

Помогите Плагин на временные действия

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

  1. Автор темы
    Bomber123

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

    Баллы:
    46
    Я значит хочу сделать плагин на временный мут/бан.
    У меня уже есть плагин но он выполняет своё действие навсегда.
    Как мне сделать плагин который выполняет своё действие на время.
    И к стати как мне потом всё отменять, по поводу мута я уже знаю как отменять а вот бааааан.
     
  2. Хостинг MineCraft
    <
  3. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Баян, есть же essentials.
     
  4. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    System.currentTimeMillis
     
  5. Автор темы
    Bomber123

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

    Баллы:
    46
    А поподробнее что это такое и с чем это едят
     
  6. Blc_Dragon

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    В гугле забанили?

    https://habrahabr.ru/post/274811/
     
  7. Автор темы
    Bomber123

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

    Баллы:
    46
    Я конечно нашёл для себя нужный метод
    Код:
    //Импрот из джавы
    import: java.time.Duration;
    //Метод
    Duration.ofMinutes(long arg0);
    Но как им пользоваться?
     
  8. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    ЭТО ВООБЩЕ НЕ ТО
     
  9. Автор темы
    Bomber123

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

    Баллы:
    46
    Ну я знаю это Time Date API мне Bic_Dargon посоветовала.
     
    Последнее редактирование: 2 апр 2017
  10. Blc_Dragon

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    я bLc
     
  11. Exception_Prototype

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

    Баллы:
    46
    Ещё один xDDD
     
  12. Автор темы
    Bomber123

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

    Баллы:
    46
    Ребят я тут в java нашёл один очень интересный класс он называется Timer как им пользоваться?
    И посоветуйте мне как его использовать.
     
  13. Blc_Dragon

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Google.com -> %вставьте название класса% javadocs -> найти
     
  14. Автор темы
    Bomber123

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

    Баллы:
    46
    Ок я нашёл нужный мне метод. Вот он!
    Код:
    time.schedule(arg0, arg1);
    ребят только вот как его к муту подключить.
    я плагин через булеановскую переменную делал.
    Код:
    //она вот так выглядит
    boolean mute = false;
    //и дальше я привязывал эту переменную к ивенту
     
  15. Exception_Prototype

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

    Баллы:
    46
    В Bukkit есть свой вариант задач
    bukkit getscheduler и далее смотри методы и читай доки
     
  16. Автор темы
    Bomber123

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

    Баллы:
    46
  17. OverCoder

    OverCoder Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    OverCoder
    В БД можно записать (текущее время + время блокировки), когда игрок заходит на сервер, плагин сравнивает то время с текущим. Если текущее время больше, то снимаем блокировку и пускаем игрока на сервер.
     
  18. MaxCode

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

    Баллы:
    6
    Имя в Minecraft:
    planet0111
    Допустим информацию о бане можно хранить так:
    Код:
    public class pBan{
    
      private static Map<String, pBan> players = new HashMap<>();
      private String playerName;
      private String reacon = "";
      private lont time;
    
      public pBan(String name){
        playerName = name;
        players.put(name, this);
      }
    
      public static pBan getBan(String name){
        return players.get(name);
      }
    
      public static boolean isBanned(String name){
        return players.containsKey(name);
      }
    
      public static void unban(String name){
        players.remove(name);
      }
    
      public void setReacon(String reacon){
        this.reacon = reacon;
      }
    
      public String getReacon(){
        return reacon;
      }
    
      public void setTime(int time){
        this.time = System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(time);
      }
    
      public long getTime(){
        return time;
      }
    
    }
    Использовать баны можно так:
    Код:
    pBan ban = new bBan("name");
    ban.setTime(10); //бан на 10 минут
    Ивент для банов:
    Код:
    @EventHandler
    public void onJoin(PlayerLoginEvent e){
       String name = e.getPlayer().getName();
       if(!pBan.isBanned(name))return;
       pBan ban = pBan.getBan(name);
       if (ban.getTime() <= System.currentTimeMillis()){
         pBan.unban(name);
         return;
       }
       e.disallow(PlayerLoginEvent.Result.KICK_BANNED, ban.getReacon());
    }
    P.S. Для тех, кто готов меня сожрать за код: Я делал все это от руки и особо не думал над кодом, потому он не очень и вообще может не работать.
    P.P.S. И извините, что скинул парню весь код:( Знаю, что тут не принято кидать готовые решения.
     
  19. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    ХВАТИТ АПАТЬ ТЕМЫ НА КОТОРЫХ НЕ БЫЛО ОТВЕТОВ с*** больше недели, куда на лечение скидывать?
     
  20. MaxCode

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

    Баллы:
    6
    Имя в Minecraft:
    planet0111
    Кошельки:
    Карта: 4249605451556211
    Киви: +380953954088
    WebMoneyR: R280873133036
    WebMoneyU: U858372485106
    WebMoneyZ: Z279786438984
    P.S. Шутка))
     
  21. _Rudey_

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

    Баллы:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    Будь здоров
     

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