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

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

Discussion in 'Разработка плагинов для новичков' started by Bomber123, Mar 31, 2017.

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

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

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

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

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

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

    Trophy Points:
    96
    Имя в Minecraft:
    DonDays
    System.currentTimeMillis
     
  5. Автор темы
    Bomber123

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    46
    Ну я знаю это Time Date API мне Bic_Dargon посоветовала.
     
    Last edited: Apr 2, 2017
  10. Blc_Dragon

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    я bLc
     
  11. Exception_Prototype

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    46
  17. OverCoder

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

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

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

    Trophy Points:
    6
    Имя в Minecraft:
    planet0111
    Допустим информацию о бане можно хранить так:
    Code:
    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;
      }
    
    }
    Использовать баны можно так:
    Code:
    pBan ban = new bBan("name");
    ban.setTime(10); //бан на 10 минут
    Ивент для банов:
    Code:
    @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 Активный участник Пользователь

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

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

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

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

    Trophy Points:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    Будь здоров
     

Share This Page